我正在編寫通用powershell腳本來在遠程機器上執行部署。我已經打一個問題,我不能溢出,而這個問題是由參數列表帶雙引號的參數沒有通過ArgumentList正確傳遞給Scriptblock
傳遞腳本塊雙引號參數我有這樣的事情:
$remoteAddress = "some-pc"
$deploymentCommand = "D:\some path\Command.exe"
$deploymentPackages = @(`"「package - one - external"`", `"「package - two - external"`", `"「package - three - internal"`")
foreach ($deploymentPackage in $deploymentPackages)
{
invoke-command -ComputerName $remoteAddress -ScriptBlock { param ($deployCmd, $deployPackage) & $deployCmd -package:$deployPackage -action:doit } -ArgumentList $deploymentCommand,$deploymentPackage
}
我在$ deploymentPackages加雙引號。而我依然讓我的命令remotly執行這樣的(這當然失敗):
D:\some path\Command.exe -package:package - one - external -action:doit
D:\some path\Command.exe -package:package - two - external -action:doit
D:\some path\Command.exe -package:package - three - external -action:doit
而適當的執行路徑應該是:
D:\some path\Command.exe -package:"package - three - external" -action:doit
周圍沒有包報價 - 一個 - 外部這混亂up everythig
如何超越這個問題,因爲我已經測試過多個解決方案,而且它們都沒有工作。
感謝您的幫助!
該解決方案完美地工作。謝謝! – Midi 2013-02-28 10:02:03