2017-07-27 91 views
0

我正在使用AWS Run Command運行PowerShell腳本。我有一組參數傳遞給我的腳本。然而,第一個參數返回以下的,而不是我公佈值:

; exit $LASTEXITCODE 

這裏是我的代碼片段:

param(  
     [String] $param1 = 'abc', 
     [String] $param2 = 'dfg',   
     [String] $param3 = '123', 
     [String] $param4 = '456'   
     ) 

Write-Output $param1 
Write-Output $param2 
Write-Output $param3 
Write-Output $param4 

我希望$參數1輸出ABC,但它返回;退出$ LASTEXITCODE

如果我把$ param4或任何其他參數按順序放在第一位,它也會返回;退出$ LASTEXITCODE

實質上,使用AWS Run Command執行PowerShell我的第一個參數被忽略或覆蓋;退出$ LASTEXITCODE

在PowerShell ISE中運行代碼。只有在AWE運行命令中才會產生錯誤。

爲什麼會發生這種情況,我該如何解決這個問題?

回答

0

$LastExitCode不過是原生應用程序的返回碼。

$ErrorActionPreference = "Stop"只適用於PowerShell cmdlet,但完全不適用於EXE。

使用try/catch是捕獲任何本機錯誤的更主要方法。在你的情況下,如果你在本地ISE中運行相同的代碼片段,它會給出正確的輸出而不會有任何問題。

希望它有助於理解更好的方式。