0

チーム、私はいくつかのソフトウェアをインストールするプログラムを書いた後、以下で終了コードを表示します。PowershellのExitCodeテスト

$SoftwareInstall.ExitCode 

これは0を返し、その他の値はインストール方法によって異なります。私はexiteコードが成功した場合にのみ実行する他の式を0にします。 if条件を使用してこれをチェックする方法以下の方法が正しいかどうかをお教えください。

if ($SoftwareInstall.ExitCode -eq 0){ 
    "Software Installed successfully " 
    #Then some other code I'll put here 

    } 
else{ 
    "Software did not installed" 
} 

お勧めしますか?

+1

はい、これは正しい方法です –

+0

ありがとう!それを行います。 – RishuA

答えて

1

あなたのメソッドはそれを行う方法の1つですが、戻り値を処理するためにSwitch Statementを使用することをお勧めします。読んで、将来的に変更することがはるかに簡単にコードを作ることができ、このようにリターンコードの処理

#Check MSIEXEC return value    
    switch ($SoftwareInstall.ExitCode){ 
     #If the uninstallation succeeded 
     0 { } 
     #If the Installation succeeded but requires a reboot 
     3010 { } 
     #If the uninstallation failed 
     default { } 
    } 

- あなたはMSIファイルを使用してインストールしている場合は、いくつかのリターンあなたは簡単にこのような方法で扱うことができるコードがあります。あまりにも多くのネストされたifまたはif-elseブロックなしで、いくつかの異なるエラーコードを処理することもできます。

+0

コードは最新のmsiのインストールのみを行い、成功した場合はサービスを開始します。だからこそ私はスイッチを再インストールした後にサービスを開始する必要があると思っていませんでした。毎回、成功のための戻りコードとして0をチェックしてください。 – RishuA

+0

2つのコードブロック'if($ SoftwareInstall.ExitCode -eq 0)'で十分です。しかし、それ以上のことが必要な場合は、私は間違いなくスイッチのステートメントをお勧めします。たとえば、私は約10パッケージのインストールとアンインストールを自動化するPowershellコードを持っています。操作が成功してもリブートが必要な場合、switch文は次のパッケージに移動する前に自動化することができます。しかし、これはあなたのニーズにとって過度のものかもしれません。 –

+0

ありがとうございます。現在は1 msiしか働かなくてはなりません。 – RishuA

関連する問題