0
我有一個簡單的命令,需要通過PowerShell在遠程機器上執行。將外部程序的參數作爲字符串變量傳遞
E:\Programs\GMM\bin\GMMFailoverTool.exe -mssql="Server=SomeServer;Database=GMM01" list
我在正確使用PowerShell執行它,即使沒有嘗試通過Invoke-Command
做到這一點的問題。
$binary = "E:\Programs\GMM\bin\GMMFailoverTool.exe"
$command = "-mssql=`"Server=SomeServer;Database=gmm01`" list"
Write-Host BINARY: $binary -ForegroundColor Yellow
write-Host ARGS: $command -ForegroundColor Yellow
Write-Host FullCommand: $binary $command -ForegroundColor Yellow
& $binary $command
輸出:
BINARY: E:\Programs\GMM\bin\GMMFailoverTool.exe
ARGS: -mssql="Server=SomeServer;Database=gmm01" list
FullCommand: E:\Programs\GMM\bin\GMMFailoverTool.exe -mssql="Server=SomeServer;Database=gmm01" list
和命令的返回是喜歡它一點都沒有得到任何的參數(或那些是不正確的)。
問題是如何正確傳遞這些參數,其中$command
已被定義爲它應該?如果我通過手工完成而沒有將它全部用於變量,它就可以工作…
& "E:\Programs\GMM\bin\GMMFailoverTool.exe" -mssql="Server=SomeServer;Database=gmm01" list
嘗試&$ binary - %$命令時,輸出爲GMMFailoverTool.exe:未知選項:$命令,因此它好像試圖直接採用它。數組方法也不會改變任何東西。 – MadBoy
* \ *拍自己\ **對不起,我的錯誤。當然' - %'不會起作用,因爲它應該將所有內容作爲字符串處理。查看更新的答案。 –
它僅適用於Array方法。對於這兩種方法。 CMD和另一個。我只是在代碼的其他部分進行了轉換,其中返回的是Array並將其強制轉換爲字符串。 – MadBoy