Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 第一个参数包含所有参数_Powershell - Fatal编程技术网

Powershell 第一个参数包含所有参数

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

我正在使用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-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
。谢谢,它成功了!