ここでの質問の短いバージョン、
バッチ ファイルから実行可能ファイルを実行します (これにより、シミュレーションが実行されます)。一度に最大 4 つまで実行できます。これらの実行可能ファイルが一度にいくつ実行されているかを (バッチ ファイルから) チェックする方法はありますか?
ロングバージョン、
複数のモデルを実行できるバッチ ファイルがありますが、ライセンスの関係で 4 つ以上のモデルを同時に実行することはできません。ただし、それらを実行するためにキューに入れることはできますが、常に4つのモデルが常に実行されるようにするバッチファイルを作成するのに苦労しています。私の最善の努力(インターネットを検索してまとめたもの)は以下のとおりです
FOR %%a in (%A%) do (
FOR %%b in (%B%) DO (
FOR %%c in (%C%) DO (
FOR %%d in (%D%) DO (
SET /A COUNT+=1
SET /A Result =!COUNT!%%4
:: set Result to the remainder of the Count divided by 4
if !Result! == 0 (
start "TUFLOW" /wait C:\Tuflow\TuflowExe\Build_2011_09_AF_64\TUFLOW_iSP_w64.exe -e1 %%a -s1 %%b -s2 %%c -s3 %%d C:\Tuflow\Model\Ohoka\runs\OH.tcf
) else (
start "TUFLOW" C:\Tuflow\TuflowExe\Build_2011_09_AF_64\TUFLOW_iSP_w64.exe -e1 %%a -s1 %%b -s2 %%c -s3 %%d C:\Tuflow\Model\Ohoka\runs\OH.tcf
)
)
)
)
)
A、B、C、および D は、実行可能ファイルに渡される変数の組み合わせを含む配列です。次に、反復を記録するカウントがあり、4 回の反復ごとに if ステートメントの「True」条件がトリガーされ、バッチはモデルの実行が完了するまで待機してから続行します。
これは問題ありませんが、他の 3 つのモデルがより早く終了する可能性があり、バッチが 4 回目の反復の完了を待っているために使用されていない貴重な CPU 時間が解放されます。さらに悪いことに、4 回目の繰り返しが他の 3 回よりも前に完了し、最終的に 4 つを超えるモデルを実行しようとすることになり、ライセンス ポップアップが表示され、ユーザーが閉じる必要があります。
私が見逃している提案やその他の解決策はありますか?