
先頭と末尾にタイムスタンプを追加するコマンドがあります ( echo %time% & #other command# & echo %time%
)。ただし、%time%
コマンドの実行にかかった時間に関係なく、 は同じになります。
出力例:
Time start: 19:48:31.75
Pinging google.com [2a00:1450:400e:80c::200e] with 32 bytes of data:
Reply from 2a00:1450:400e:80c::200e: time=13ms
Reply from 2a00:1450:400e:80c::200e: time=13ms
Reply from 2a00:1450:400e:80c::200e: time=9ms
Reply from 2a00:1450:400e:80c::200e: time=10ms
Ping statistics for 2a00:1450:400e:80c::200e:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 13ms, Average = 11ms
Time end: 19:48:31.76
これを 1 行内で実行する方法はありますか?
ありがとう
答え1
CMDは変数を展開し、各行を実行します。つまり、
echo %time% & ping 127.0.0.1 & echo %time%
最初に展開され、その後実行される
「遅れた拡大」もある 使用例をいくつか紹介します、さらに詳しく ただし、これはcmdファイルでのみ機能し、コマンドラインでは機能しません。
setlocal ENABLEDELAYEDEXPANSION
echo !time! & ping 127.0.0.1 & echo !time!
検索を続けるおそらくcmd /Vに使える:
cmd /V /C "echo %time% & ping 127.0.0.1 & echo !time!"
私にとっては期待通りの結果が得られましたが、いくつかのユースケースを妨げる落とし穴があるかもしれません。