2017-07-27 33 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中运行相同的代码片段,它会给出正确的输出而不会有任何问题。

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