1

タスクは、プログラム (同じプログラム) を 10 回実行し、実行ごとに終了コード (main 関数の戻り値) を出力することです。だから私は次のようにバッチファイル(Windows)を実行したい:

FOR /l %%x IN (1,1,10) DO (
    AutomatedTest.exe cip.log
    ECHO %ERRORLEVEL%
)

直感的に考えている場合は上記のコードで実行できるはずですが、実行中のコードが実際には次のようになっているため、機能しません。

(
    AutomatedTest.exe cip.log
    ECHO 0
)

この作品は10回実行されます。

それを機能させる方法についてのアイデアはありますか?ありがとう!

4

1 に答える 1

3

必要なのは遅延変数展開です。

FOR /l %%x IN (1,1,10) DO (
    AutomatedTest.exe cip.log
    ECHO !ERRORLEVEL!
)

遅延変数展開を有効にするには、バッチの前に を付ける SETLOCAL ENABLEDELAYEDEXPANSIONか、コマンド シェルを で開始し CMD.EXE /V:ONます。

もう 1 つのアプローチは、サブルーチンを使用することです。

FOR /l %%x IN (1,1,10) DO CALL :Test
GOTO :EOF

:Test
AutomatedTest.exe cip.log
ECHO %ERRORLEVEL%
GOTO :EOF

さらに別のアプローチは、 を使用することIF ERRORLEVELです。

于 2013-08-26T13:02:36.777 に答える