Как передать массив в качестве параметра в другой скрипт?


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

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

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

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

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

 [email protected]("111","222")
 start-job -filepath myscript.ps1 -arg $myarr

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

1   51   2011-08-22 23:45:15

1 ответ:

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

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

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