2012-02-17 6 views
0

コマンドライン入力をループに入れてexe(C++コード)をトリガするバッチスクリプトがあります。トリガされたexeがクラッシュしたときにバッチファイルを実行し続ける方法

for /f %%j in (file.txt) do (
"MyExe.exe" "input\MyInput_%%j.txt" 
) 

「file.txtとは、」入力ファイル名のリストが含まれています

このためのコードは次のようなものです。問題は、時々私のexeファイルが入力ファイルにクラッシュすることです。クラッシュすると、スクリプトの実行が停止し、手動による介入が必要になります。

exeがクラッシュしたときにスクリプトがメッセージを表示して次の入力で実行を継続できるように、これを修正する方法はありますか?

私はWindows XPでスクリプトを実行していますが、OSフリーのソリューションが優れています。

答えて

1

別のインスタンスで実行してみてください。このようなもの:

for /f %%j in (file.txt) do (
    cmd.exe /C "MyExe.exe" "input\MyInput_%%j.txt" 
) 
+0

:これはすべての入力に対して新しいcmdプロンプトを表示しますか?はいの場合、これは即座に多くのcmdプロンプトを起動し、私のPC上の負荷が大きくなります。 – Garfield

+0

はい、そうです。しかし、cmdプロンプトは閉じられ、実行結果はメインバッチファイルに返されます。もちろん、戻り値を取得し、それに基づいて適切なメッセージを表示する必要があります。しかし、バットファイルは引き続き実行する必要があります。 –

+0

startコマンドもありますが、実行がクラッシュした場合の動作はわかりません。 http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true –

関連する問題