web-dev-qa-db-ja.com

配列をパラメーターとして別のスクリプトに渡すにはどうすればよいですか?

何らかの理由で、文字列の配列をscriptblockのパラメーターとして渡すことができないようです。私はここで間違っていますか?

別のスクリプトから呼び出される私のスクリプト:

param(
    [parameter(Mandatory=$true)]
    [string[]]$myarr
)

foreach ($elem in $myarr){
    $elem
}

私は別のスクリプトからそれを呼び出します

 $myarr = @("111", "222")
 start-job -filepath myscript.ps1 -arg $myarr

配列の最初の項目「111」のみを取得しました。

53
mishkin

以下のように試してください:

start-job -filepath myscript.ps1 -arg (,$myarr)

-ArgumentListは引数のリスト/配列を受け取ります。したがって、-arg $myarr、配列の要素を引数として渡すようです。そのため、PowerShellで配列である単一の引数として扱うように強制する必要があります。

70
manojlds