Windows Batch:在循环中获取当前日期和时间

Posted

技术标签:

【中文标题】Windows Batch:在循环中获取当前日期和时间【英文标题】:Windows Batch: get current date and time within a loop 【发布时间】:2015-09-14 23:31:04 【问题描述】:

以下内容将在一个 windows 批处理文件中打印当前数据和时间:

for /f "tokens=2,3,4,5,6 usebackq delims=:/ " %%a in ('%date% %time%') do echo %%c-%%a-%%b %%d%%e

我找到了这个here。

但是,如果放置在循环中,初始数据和时间将不断打印,并且不会更新以反映新时间。

如何修改它以反映当前时间并在循环中工作?

谢谢

【问题讨论】:

... 另一个。见delayed expansion trap 非常感谢。但我不清楚,在上面的行中,从 %% 或 % 更改为 ! 的内容。 %%a,...%%e 是您的 for 变量。不要改变它们。使用!time! 而不是%time%(和!date! 而不是%date% - 以防万一,您的脚本大约在午夜运行;))。但是您会找到更好的日期时间字符串here 小心,因为这可能不适用于不同区域设置的 Windows(日期和时间的格式不同) 我已经成功使用了 dbenham 的 getTimeStamp.bat 脚本。 ***.com/questions/21034354/… 【参考方案1】:

这要放在批处理文件中,否则代码将不起作用。

@echo off

:loop

echo date: %date% | time: %time%

goto loop

【讨论】:

删除“|”,如你所愿! 我确实测试了我的代码,但我看到了我错过了什么 它没有。删除| 或将其转义:^| 我的意思是这样做echo date:%Date% Time:%time% 然后相应地编辑您的答案。无效的答案往往会被否决和关闭。

以上是关于Windows Batch:在循环中获取当前日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows Batch 中,为啥用括号括起来的 for 循环不会扩展它被告知要回显的变量?

通过 FOR 从 BATCH 文件按日期排序

如何获取具有已完成状态的 Spring Batch 作业的最后执行的开始或结束日期?

BATCH - 在 for 循环中调用的函数不返回值

带有正则表达式的 Windows BATCH 过滤器 [关闭]

Spring Batch - 循环读取器、处理器和写入器 N 次