2015-06-12 59 views
1

忽略的powershell腳本失敗我有一個的powershell腳本定義$ErrorActionPreference = "Stop"
但我也有一個start-process呼叫靶向返回成功非標準退出代碼(1代替0)的處理。 因此,即使啓動過程正常,腳本仍然失敗。 我試圖在start-process調用中附加-ErrorAction "Continue"參數,但它沒有解決問題。對於特定線

問題的行看起來是這樣的:

$ErrorActionPreference = "Stop" 
... 
start-process "binary.exe" -Wait -ErrorAction "Continue" 
if ($LastExitCode -ne 1) 
{ 
    echo "The executable failed to execute properly." 
    exit -1 
} 
... 

我怎麼能防止啓動過程從使整個腳本失敗。

+0

你有沒有嘗試設置'$ ErrorActionPreference =「silentlycontinue」'上一行,然後'$ ErrorActionPreference =「停止「'在下面一行? –

回答

3

Start-Process不更新$LASTEXITCODE。與-PassThru參數運行Start-Process獲取進程對象和評估對象的ExitCode屬性:

$ErrorActionPreference = "Stop" 
... 
$p = Start-Process "binary.exe" -Wait -PassThru 
if ($p.ExitCode -ne 1) { 
    echo "The executable failed to execute properly." 
    exit -1 
} 
+0

謝謝!完美的作品! –