2011年7月28日木曜日

標準アクティビティだけで BAT ファイルを置換(3)

前回までで外部プロセスの非同期、同期実行が行えるようになったので今回は終了判定です。BAT ファイルで終了判定を行う場合は、環境変数の ERRORLEVEL を利用して判断することが多いと思います。

   1: start /w notepad.exe
   2: if ERRORLEVEL 0 goto ok
   3: :ng
   4: echo '異常終了?'
   5: goto end
   6: :ok
   7: echo '正常終了'
   8: :end

これを .NET で通常通りプログラミングするのであれば、次のような形になります。

   1: Dim resProc As Process = Process.Start("notepad.exe")
   2: resProc.WaitForExit
   3: If resProc.ExitCode = 0 Then
   4:   '正常終了
   5: Else
   6:   '異常終了?
   7: End If

このように Process クラスの ExitCode プロパティを利用して判断するのと「ほぼ」同意です。ワークフローにてこれと同じことを行う場合は、同じように記述すれば可能です。

ExitCode

If アクティビティの条件式に resProc.ExitCode = 0 とダイレクトに記載しています。このように記述すると、上記サンプルロジックと同様の挙動を示します。

0 件のコメント:

コメントを投稿