我试图使用Windows命令行测量时间。
echo %TIME% & timeout 5 > NUL & echo %TIME%
但是此命令将打印两个相等的时间戳。为什么?我做错了什么?
timeout 5
仅作为示例。
答案 0 :(得分:4)
在执行任何操作之前,解释器首先解析整行(用相同的值替换两个%time%
(因为解析时间相同))。您需要delayed expansion才能使其正常工作。
如果您需要命令行解决方案:
cmd /v /c "echo !time! & timeout 5 & echo !time!"
答案 1 :(得分:1)
本文https://blogs.msdn.microsoft.com/oldnewthing/20060823-00/?p=29993说,在读取命令时会扩展ENV变量。您的结果似乎表明在执行任何操作之前,整个命令行已被读取/解析/扩展。