Как передать массив в качестве параметра другому сценарию? - PullRequest
52 голосов
/ 22 августа 2011

По некоторым причинам, похоже, что я не могу передать массив строк в качестве параметра в скрипт-блок.Что я здесь не так делаю?

Мой скрипт, который вызывается из другого скрипта:

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

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

Я называю его из другого скрипта как

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

Я получил толькопервый элемент в массиве - «111».

1 Ответ

70 голосов
/ 23 августа 2011

Попробуйте, как показано ниже:

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

-ArgumentList принимает список / массив аргументов. Поэтому, когда вы указываете -arg $myarr, вы передаете элементы массива в качестве аргументов. Таким образом, вы должны заставить PowerShell рассматривать его как один аргумент, который является массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...