2017-07-27 16 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 

私は出力ABCに$ PARAM1を期待し、それが返されます。 exit $ LASTEXITCODE

$ param4やその他のパラメータを最初に並べると、それも返されます。 exit $ LASTEXITCODE

実際、AWS Run Commandを使用してPowerShellを実行すると、最初のパラメータが無視されたり上書きされたりします。 exit $ LASTEXITCODE

PowerShell ISEでコードを実行すると動作します。エラーが生成されるのはAWE Run Commandだけです。

なぜこれが起こっているのですか。これをどうやって止めますか?

答えて

0

$LastExitCodeはネイティブアプリケーションのリターンコードに過ぎません。

$ErrorActionPreference = "Stop"は、PowerShellコマンドレットでのみ機能しますが、EXEではまったく機能しません。

try/catchを使用すると、ネイティブエラーをキャプチャするより重要な方法です。あなたの場合、ローカルのISEで同じスニペットを実行すると、問題なく適切な出力が得られます。

より良い方法で理解するのに役立ちます。

関連する問題