バッチファイルでリアルタイムに時刻を取得(または、環境変数timeをリアルな時刻に書き換え)する方法を教えてください。
例)
@rem ここでは23:00:00と表示される。
echo %time%
@rem 1秒待って、
ping localhost -n 1
@rem ここでは23:00:01と表示されてほしい。
echo %time%
遅延環境変数の展開を有効にして(%time%ではなく)!time!で変数を展開すればできます。
C:\> cmd /V:ON C:\> for /l %i in (1, 1, 5) do echo !time!&ping localhost -n 2 >nul
質問にあるとおりだと思う。
ただ ウェイト時間が短かったんじゃないかな?
ちなみに 質問のを実行してみると
最初のが 8:28:20.81
次のが 8:28:20.96
でちゃんとリアルタイムの時刻が表示されている。
遅延環境変数の展開を有効にして(%time%ではなく)!time!で変数を展開すればできます。
C:\> cmd /V:ON C:\> for /l %i in (1, 1, 5) do echo !time!&ping localhost -n 2 >nul
コメント(3件)
for /l %i in (1, 1, 5) do echo %time%&ping localhost -n 2 >nul
環境はWindows2003R2x86です。