时间环境变量未按预期工作

时间:2018-12-18 14:16:20

标签: batch-file cmd

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

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

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

2 个答案:

答案 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变量。您的结果似乎表明在执行任何操作之前,整个命令行已被读取/解析/扩展。