date - 在DOS脚本中打印当前日期和时间

标签 date time dos

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

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


问题在于日期和时间始终是脚本启动时的日期和时间。我一直在过夜运行脚本,但日期和时间仍然相同。有没有一种方法可以更新它们,以便在将字符串打印到日志文件时显示当前日期和时间?

最佳答案

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

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

关于date - 在DOS脚本中打印当前日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524909/

相关文章:

parsing - Elasticsearch无法使用自定义格式解析日期

Excel字符串转时间格式

Python - 使用 UTC 时间戳检查是否是另一个时区的 DST

batch-file - ECHO .> 在批处理文件中是什么意思?

windows - 从批处理文件创建日志

java - 获取直到午夜的毫秒数

mysql - 如何从最大日期子查询列表中选择最大日期

sql - 从间隔中提取月数

windows - 在 Windows 批处理中使用创建日期和时间重命名文件

c - 从命令提示符运行 Hello World C 代码?