質問: dosコマンドのループ内のtimeコマンド dosコマンドのループ内のtimeコマンド ループの中で、少し時間のかかる処理を連続的に行ない、さらに時刻表示を行い 1回あたりの時間が分かるように表示したいと思っています。 下記のソースのイメージです。(極めてシンプルにしました) しかし、ループ内で実行するtimeコマンドがすべて同じ 時刻になってしまい、意図通りの動きになりません。 ループ内で、ループごとに異なる時刻を表示することは可能でしょうか? もしできるのであればその方法を教えてください。 よろしくお願いします。 @echo start◆%time% @for /l %%i in (0, 1, 3) do @( @echo %%i【%time%】 @ping localhost -n 2 > nul ) @echo end ◆%time% pause
回答: forループの中ではforコマンド起動時の時刻しか帰らないようですね。 1つの方法としては、以下のようにcallで飛ばしてやるという方法があります。 @echo start◆%time% @for /l %%i in (0, 1, 3) do @call :sub @echo end ◆%time% pause @goto :eof :sub @echo %%i【%time%】 @ping localhost -n 2 > nul @exit /b