我無法理解Powershell中的參數傳遞行爲。動態構建的Powershell命令 - 參數傳遞問題
說,我有一個腳本callScript.ps1
param($a="DefaultA",$b="DefaultB")
echo $a, $b
說,另一個腳本調用callScript.ps1
。
.\callScript.ps1
# outputs DefaultA followed by DefaultB as expected
.\callScript.ps1 -a 2 -b 3
# outputs 2 followed by 3 as expected
$arguments='-a 2 -b 3'
callScript.ps1 $arguments
# I expected output as previous statement but it is as follows.
# -a 2 -b 3
# DefaultB
如何通過動態構建命令來運行PowerShell腳本? 您能解釋爲什麼$arguments
被解釋爲$a
變量的腳本爲callScript.ps1
?
你傳入一個字符串,你腳本期待2個參數。因此它回退到DefaultB(缺少)。我認爲你應該考慮重構你的函數來接受一個數組。至少如果你真的需要傳遞參數作爲單個參數。 – Akaino