Vì một lý do nào đó, có vẻ như tôi không thể chuyển mảng chuỗi làm tham số cho tập lệnh. Tôi đang làm gì ở đây sai?Làm cách nào để truyền mảng thành tham số cho tập lệnh khác?
Kịch bản của tôi được gọi là từ kịch bản khác:
param(
[parameter(Mandatory=$true)]
[string[]]$myarr
)
foreach ($elem in $myarr){
$elem
}
Tôi gọi nó là từ kịch bản khác như
[email protected]("111","222")
start-job -filepath myscript.ps1 -arg $myarr
có chỉ mục đầu tiên trong mảng - "111"
vâng, nó hoạt động. Bạn có thể giải thích lý do tại sao? :) như tôi hiểu nó dấu phẩy trong() có nghĩa là nó thực sự là một mảng với hai mảng phụ, phải không? – mishkin
@Mishkin - Giải thích sẽ là -ArgumentList có trong danh sách/mảng đối số. Vì vậy, khi bạn cung cấp '-arg $ myarr', nó giống như bạn đang truyền các phần tử của mảng làm đối số. Vì vậy, bạn phải ép buộc powershell coi nó như một đối số duy nhất là một mảng. – manojlds
Bạn sẽ chuyển mảng và biến số khác như thế nào? -arg (, $ myarr, $ singleValue). Ví dụ: $ singleValue = "x" – eHaze