【问题标题】:Printing current date and time in DOS script在 DOS 脚本中打印当前日期和时间
【发布时间】:2012-09-13 13:04:04
【问题描述】:

我有一个脚本,它在日志中打印日期和时间,后跟一个字符串。

echo %DATE%_%TIME% Processing %%f >> process.log

问题是日期和时间总是脚本启动的日期和时间。我一夜之间运行了这个脚本,仍然有相同的日期和时间。有没有办法更新它们,以便在字符串打印到日志文件时显示当前日期和时间?

【问题讨论】:

    标签: date time dos


    【解决方案1】:

    您拥有%%f 的事实表明您的 echo 命令处于 FOR 循环中。一次解析整个 FOR 循环,并在解析时扩展 %DATE%。每次迭代都不会重新解析该命令,这就是为什么每次迭代都获得相同值的原因。你得到的是在 FOR 语句执行之前存在的值!

    解决方案是延迟扩展。将setlocal enableDelayedExpansion 放在脚本顶部附近。然后使用!DATE!_!TIME! 而不是%DATE%_%TIME%。延迟扩展意味着扩展发生在语句执行时,而不是在解析时。 HELP 系统中有一个很好的解释。在命令提示符下输入 HELP SETSET /? 并查找处理延迟扩展的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多