Powershell没有正确处理字符串参数

时间:2011-11-08 04:20:25

标签: powershell

我正在写一个简单的PowerShell脚本,我不明白它的行为。这是代码。

Function print($first,$second){
Write-Host "$first"
}

$one="Dog"
$two="Cat"

print($one,$two)

这是输出。

Dog Cat

我不知道为什么它打印两个参数而不仅仅是我要求的参数。我发现了一个类似的问题,说解决方案的答案是写

print $one $two

但我不知道为什么。 另一个问题是How do I pass multiple string parameters to a PowerShell script?

有人可以阐明这个问题吗?

1 个答案:

答案 0 :(得分:6)

就像你提到的那样,你必须把它称为:

print $one $two

在Powershell中,函数的参数是用空格而不是逗号分隔的,并没有用括号括起来(但方法参数却是这样)

您调用的方式print($one,$two),就像使用一个参数(即($one,$two))调用print。所以当你write-host $first时,你正在回应数组,因此你会看到它们。