none
Invoke-Expressionで実行コマンドの戻り値を取得したい

    質問

  • backuptool.exeをいうファイルを変数$bkにオプション設定こみで文字列でコマンドラインを作成。

    その後、Invoke-Expression $bkを実行し、backuptool.exeが実行され処理完了後、exeが成功(0)・失敗(1)の戻り値を返します。

    その戻り値を取得し、成功・失敗のIF判断処理をしようとしていますが、戻り値を取得することが出来ません。

    そのまま実行すると実行している最中に次の処理に流れてしまいIF判断をすることが出来ません。

    ($lastexitcodeでは0になっている)

    この実行結果の戻り値を取得する方法はありますでしょうか。

    実行シェル簡単例(test1.ps1)

    #実行ファイル

    $a=""`C:\Proguram Files\backuptool\backuptool.exe`""

    #実行ファイルオプション

    $b="`-s -b D:\backup`""

    #実行コマンドラインの文字列作成

    $bk=$a + $b

    #バックアップ実行

    Invoke-Expression=$bk

    #ここでバックアップ実行完了後の戻り値を取得したい

    if($lastexitcode)では、バックアップの処理中なのに0になってしまい成功・失敗判断が出来ない。

    backuptool.exeの処理完了後、戻り値を取得してIF判断をして、次の処理へ流れるようにしたい。

    2012年5月10日 18:21

回答

すべての返信