2011-11-08 41 views
2

我正在寫一個簡單的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?

任何人都可以在這個問題上點亮?

回答

6

就像你提到的,你必須把它叫爲:

print $one $two 

在PowerShell中,函數的參數被分隔的空間,而不是逗號,並在括號中未封閉的(方法的參數是,雖然)

你打電話的方式,print($one,$two),這就像打印一個數組的參數 - ($one,$two)。所以當你write-host $first,你正在迴應數組,因此你看到他們兩個。

相關問題