关于批处理文件:时间环境变量未按预期工作

Time environment variable not working as expected

本问题已经有最佳答案,请猛点这里访问。

我试图使用Windows命令行测量时间。

1
echo %TIME% & timeout 5 > NUL & echo %TIME%

但是此命令打印两个相等的时间戳。 为什么? 我做错了什么?
timeout 5就是例如。


解释器首先解析整行(在执行任何操作之前将%time%替换为相同的值(因为解析的同时))。 您需要延迟扩展才能使其正常运行。

如果您需要命令行解决方案:

1
cmd /v /c"echo !time! & timeout 5 & echo !time!"


本文https://blogs.msdn.microsoft.com/oldnewthing/20060823-00/?p=29993表示ENV变量在读取命令时被扩展。 您的结果似乎表明在执行任何操作之前,会立即读取/解析/扩展整个命令行。