簡體   English   中英

將數組傳遞給PowerShell腳本

[英]Passing an array to a PowerShell script

我試圖將數組傳遞給PowerShell腳本,但我總是得到一個值。 我用Google搜索了我的屁股,但我找不到任何東西。 我需要做的就是將一個數組傳遞給腳本。 這是我的代碼:

param($Location)
($location).count

Foreach ($loc in $Location)
{

$loc

}

這是我正在運行的命令:

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -ExecutionPolicy Unrestricted  -File "C:\ParaTestingArray.ps1" -location Sydney,London

這是輸出:

1
悉尼

對於我的生活,我無法讓它抓住數組中的其他值。 我試過用

param([string[]]$Location)

我試過了:

-location "Sydney","London"
-location @(Sydney,London)
-location Sydney London
-location Sydney,London
-location (Sydney,London)

我究竟做錯了什么?

請改用-command開關。

像這樣:

powershell -Command "&{C:\ParaTestingArray.ps1 -Location A,B,C}"

來自about_powershell:

要編寫運行Windows PowerShell命令的字符串,請使用以下格式:

     "& {<command>}"

引號表示字符串並且調用操作符( & )導致執行命令的位置。

我無法重現那個結果:

$script = @'
param($Location)
($location).count

Foreach ($loc in $Location)
{

$loc

}
'@

$script | sc test.ps1

.\test.ps1 sydney,london

2悉尼倫敦

編輯:這有效:

$args.count

Foreach ($loc in $args)
{

$loc

}

被稱為:powershell.exe -file c:\\ test.ps1 sydney london

Powershell.exe -Command "&{C:\script.ps1 -ParmArray 1,2,3}"

訣竅對我有用 - 但不幸的是感覺很糟糕。 在我的其他PowerShell體驗之后絕對違反直覺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM