Windows批处理: 在循环中获取当前日期和时间

5
以下代码可以在Windows批处理文件中输出当前日期和时间:
```bat echo %date% %time% ```
for /f "tokens=2,3,4,5,6 usebackq delims=:/ " %%a in ('%date% %time%') do echo %%c-%%a-%%b %%d%%e

我在这里找到了 这个

然而,如果放在循环中,初始的日期和时间将被不断打印,而不会更新以反映新的时间。

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

谢谢


1
另一个。请参见延迟扩展陷阱 - Stephan
非常感谢。但是我不清楚在上面的那一行中,要将%%或%更改为!。 - user1052610
%%a,...%%e是你的for变量。不要更改它们。使用!time!代替%time%(并使用!date!代替%date% - 以防万一,你的脚本在午夜左右运行;)). 但是,你会发现一个更好的日期时间字符串方法在这里 - Stephan
请注意,这可能无法在不同语言环境的Windows中正常工作(其中日期和时间格式不同)。 - Marged
我使用dbenham的getTimeStamp.bat脚本取得了成功。http://stackoverflow.com/questions/21034354/wmic-failure-with-concurrent-calls-on-xp-and-server-2003 - lit
不要使用%date%来获取日期。这是不可靠的,因为它取决于当前的语言环境和日期时间设置。请参阅如何获取与语言环境无关的Windows批处理日期戳? - phuclv
1个回答

0

这段代码需要放置在批处理文件中,否则它将无法工作。

@echo off

:loop

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

goto loop


去掉“|”吧,你想怎么做就怎么做! - user12489103
我确实测试了我的代码,但我看到了我错过的地方。 - user12489103
仅返回翻译的文本:它不工作。请删除|或转义为^| - Stephan
我的意思是只需执行此命令:echo date:%Date% Time:%time% - user12489103
然后相应地编辑您的答案。非工作答案往往会被投票和关闭。 - Stephan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接