我已經得到了通過逗號分隔的列表接受一個參數多個值的PowerShell的功能,像這樣:通字符串變量函數的參數爲逗號分隔的列表
test-function -Targets 127.0.0.1, 8.8.8.8, fake.fqdn.com -FileName "c:\results.csv"
這裏是帕拉姆部分:
function test-function {
param(
[string[]]$Targets
[string]$FileName
)
}
我試圖把儘可能多的目標參數數組,所以我把它們放進一個變量,像這樣:
foreach ($target in $arrayTargets) { $temp = $temp + ", $Target" }
$Targets = $temp -replace "^, ", ""
這會導致所需的「127.0.0.1,8.8.8.8,fake.fqdn.com」作爲變量$Targets
中的字符串。
當我嘗試執行引用$Targets
變量的函數時,該函數將$Targets
解釋爲好像它是單個條目而不是多個。這是我用同樣的結果嘗試:
test-function -Targets $Targets -FileName "c:\results.csv"
test-function -Targets "$Targets" -FileName "c:\results.csv"
我也嘗試過的ArgList中幾種不同的方式:
$ArgList = "-Targets $Targets -FileName `"c:\results.csv`""
test-function $ArgList
而不是採取每一個人數組項作爲參數,它需要整個字符串作爲參數。
我怎樣才能讓這個函數接受一個數組作爲多個目標?
僅供參考您的函數調用和函數定義使用不同的參數名稱。這可能會讓有人試圖閱讀這裏發生的事情而感到困惑。 – Matt