Powershell 第一个参数包含所有参数
我正在使用PowerShell 5.1.18362.752,我不明白这里发生了什么:Powershell 第一个参数包含所有参数,powershell,Powershell,我正在使用PowerShell 5.1.18362.752,我不明白这里发生了什么: function test { param ( $str1, $str2) Write-Host "1 in function : $str1" Write-Host "2 in function : $str2" } $var1 = "toto" $var2 = "titi" Write-Ho
function test
{
param ( $str1, $str2)
Write-Host "1 in function : $str1"
Write-Host "2 in function : $str2"
}
$var1 = "toto"
$var2 = "titi"
Write-Host "1 : $var1"
Write-Host "2 : $var2"
test($var1, $var2)
输出:
PS C:\> c:\test.ps1
1 : toto
2 : titi
1 in function : toto titi
2 in function :
参数$var1
和$var2
被“放入”$str1
,我做错什么了吗?试试:
test$var1$var2
或
test-str1$var1-str2$var2
如你所愿
Get ChildItem-Path$varx
Duplicate(ish)of-底线是您不使用括号将参数包围到cmdlet中-PowerShell将($var1,$var2)
视为一个数组,并将其传递给函数的第一个参数-即它认为您的意思是test-str1@(var1,$var2)
。改用test-str1$var1-str2-$var2
或test$var1$var2
。谢谢,它成功了!