Как передать массив в качестве параметра другому сценарию?
По некоторым причинам, похоже, что я не могу передать массив строк в качестве параметра в скрипт-блок. Что я здесь делаю не так?
Мой скрипт, который вызывается из другого скрипта:
param(
[parameter(Mandatory=$true)]
[string[]]$myarr
)
foreach ($elem in $myarr){
$elem
}
Я называю это из другого скрипта как
$myarr = @("111", "222")
start-job -filepath myscript.ps1 -arg $myarr
Я получил только первый элемент в массиве - "111".
Ответы
Ответ 1
Попробуйте следующее:
start-job -filepath myscript.ps1 -arg (,$myarr)
-ArgumentList
принимает список/массив аргументов. Поэтому, когда вы даете -arg $myarr
, вы как бы передаете элементы массива в качестве аргументов. Поэтому вам нужно заставить PowerShell рассматривать его как единственный аргумент, который является массивом.