努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:windows:batch:batch-010

バッチ処理用ツール使い方例

各EXEの実行時間は以下とする。各EXEは正常終了時に 0 、異常終了時に 1 のリターンコードが返る。

EXE 実行時間
A.exe 1分
B.exe 2分
C.exe 3分
D.exe 1分

ツールは2種類

順次実行

単純に直列実行する例。

case1.bat
rem case1
A.exe
B.exe
C.exe
D.exe

順次実行2

A.exeがエラーなら B.exe は実行されない。B.exe がエラーなら C.exe は実行されない。C.exe がエラーなら D.exe は実行されない。

case2.bat
rem case2
A.exe
IF ERRORLEVEL 1 EXIT /B 1 
B.exe
IF ERRORLEVEL 1 EXIT /B 1
C.exe
IF ERRORLEVEL 1 EXIT /B 1
D.exe

並列実行

全てを並列に実行する例。実行するプログラムが他のプログラムに依存しない場合は並列実行で処理時間短縮を狙う。
この例では理論上C.exeの実行時間3分で完了する。※実際はオーバーヘッドがあり3分は超える。

case3a.bat
rem case3a
start /B A.exe
start /B B.exe
start /B C.exe
start /B D.exe
bgwait.exe
case3b.bat
rem case3b
parastart.exe A.exe B.exe C.exe D.exe

組み合わせ実行

A.exe、B.exe、C.exe はそれぞれ依存関係はなく、D.exe は A.exe、B.exe、C.exe がすべて終了してから実行しなくてはならない制限・制約がある。

case4a.bat
rem case4a
start /B A.exe
start /B B.exe
start /B C.exe
bgwait.exe
D.exe
case4b.bat
rem case4b
parastart.exe A.exe B.exe C.exe
D.exe

組み合わせ実行2

A.exe、B.exe、C.exe はそれぞれ依存関係はなく、D.exe は A.exe、B.exe、C.exe がすべて正常終了してから実行しなくてはならない制限・制約がある。

case5.bat
rem case5
parastart.exe -all A.exe B.exe C.exe
IF NOT ERRORLEVEL 1 D.exe
documents/windows/batch/batch-010.txt · 最終更新: 2020/08/07 16:50 by k896951