バッチ ジョブから 2 つのバックグラウンド プロセスを開始し、それらを待つ必要があります。Unix シェル アナログは次のとおりです。
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
何か案は?
バッチ ジョブから 2 つのバックグラウンド プロセスを開始し、それらを待つ必要があります。Unix シェル アナログは次のとおりです。
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
何か案は?
開始ラッパーを使用して解決できます。
ラッパーはプロセスを開始しstart /wait
、プロセスが終了した後、シグナリングのためにファイルを削除します。
ラッパーを介して開始する最初のプロセス、2 番目に開始できるstart /wait
.
その後、ファイルを待つだけです。
Echo > waiting.tmp
Start cmd /c wrapper.bat myprocess1 -flags1
start /wait myprocess2 -flags2
:loop
if exist waiting.tmp goto :loop
wrapper.bat の内容
start /wait %*
del waiting.tmp
START
次のコマンドを使用します。
START /WAIT myprocess1 -flags1
唯一の問題は、プロセスを並行して実行して両方を待機させることはできないということです。プロセスは順番に実行する必要があります。
を使用せずに 2 つのプロセスを開始し、コマンドSTART /WAIT
の出力を定期的に解析して、それらがまだ実行されているかどうかを確認することで、同時実行を実行できる場合があります。TASKLIST
これはより複雑になり、もちろんビジーな待機になりますが、理論的にはプロセスを同時に実行できます。