46
出於某種原因,它看起來像我不能將字符串數組作爲參數傳遞給scriptblock。我在這裏做什麼錯了?如何將數組作爲參數傳遞給另一個腳本?
我的腳本,它是從另一個腳本調用:
param(
[parameter(Mandatory=$true)]
[string[]]$myarr
)
foreach ($elem in $myarr){
$elem
}
我把它從另一個腳本
[email protected]("111","222")
start-job -filepath myscript.ps1 -arg $myarr
陣列中只拿到了第一個項目 - 「111」
是的,它的工作原理。你能解釋爲什麼嗎? :)據我所知,逗號()意味着它實際上是一個有兩個子數組的數組,對吧? – mishkin
@Mishkin - 解釋是-ArgumentList需要一個參數列表/數組。所以當你給出'-arg $ myarr'時,就好像你傳遞數組的元素作爲參數一樣。所以你必須強迫powershell把它當作一個單一的參數,這是一個數組。 – manojlds
你會如何傳遞數組和另一個變量? -arg(,$ myarr,$ singleValue)。例如,$ singleValue =「x」 – eHaze