当变量(例如,作为函数参数传递的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