AWS Run命令忽略第一个PowerShell参数 - 输出;退出$ LASTEXITCODE

时间:2017-07-27 19:06:25

标签: powershell amazon-web-services

我使用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

我希望$ param1输出abc,但它会返回;退出$ LASTEXITCODE

如果我将$ param4或任何其他参数按顺序排在第一位,它也会返回;退出$ LASTEXITCODE

实质上,使用AWS Run Command执行PowerShell,我的第一个参数被忽略或覆盖;退出$ LASTEXITCODE

在PowerShell ISE中运行代码它有效。只有在AWE Run Command中才会产生错误。

为什么会发生这种情况?如何阻止这种情况?

1 个答案:

答案 0 :(得分:0)

$LastExitCode只不过是本机应用程序的返回代码。

$ErrorActionPreference = "Stop"仅适用于PowerShell cmdlet,但对于EXE根本不起作用。

使用try/catch是捕获任何本机错误的更主要方法。在您的情况下,如果您在本地ISE中运行相同的代码段,它将提供正确的输出而没有任何问题。

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