當變量(例如,作爲函數參數傳遞的varSuffixed
以其他變量名作爲前綴,例如, var
,它也傳遞給該函數,但未在該函數內指定爲參數:Cannot bind parameter because parameter 'varSuffixed' is specified more than once.
Powershell錯誤,當變量帶有其他變量前綴時,前綴變量未定義爲函數的參數
如果指定了兩個參數或者前綴變量是函數中的指定參數,則不會發生該錯誤。當不濺射變量時也會發生錯誤。
下面是一個例子:
$args = @{
"var"="blah";
"varSuffixed"="blah2";
}
function Do-WorkingFunction($var, $varSuffixed){
Write-Host($var)
Write-Host($varSuffixed);
}
function Do-BrokenFunction($varSuffixed){
Write-Host($varSuffixed);
}
Do-WorkingFunction @args
Do-BrokenFunction @args
當試圖訪問變量varSuffixed
在Do-BrokenFunction
,出現以下錯誤:Cannot bind parameter because parameter 'varSuffixed' is specified more than once.
任何人能解釋這是爲什麼?
這已經過測試與2 PowerShell的版本和5