echo %time% 重複出力

echo %time% 重複出力

先頭と末尾にタイムスタンプを追加するコマンドがあります ( 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!"

私にとっては期待通りの結果が得られましたが、いくつかのユースケースを妨げる落とし穴があるかもしれません。

関連情報