在其他编程语言中,要实现日期时间字符串的格式化,包括时间计算,都是比较简单的
但在bat或者说cmd、dos中要实现这些功能、还是有一定难度的
首先,windows的cmd中可以使用%date%表示日期,%time%表示时间,但都会依赖于系统本身设置的日期时间的格式
即在不同的windows主机中%date%与%time%的输出值都可能不一样!所以如果处理日期与时间,都最好要在主机上测试一下
笔者目前最常用的是如下方式格式化日期与时间的输出:
@echo off for /f "tokens=1-3 delims=-/ " %%1 in ("%date%") do set ddd=%%1%%2%%3 for /f "tokens=1-4 delims=.: " %%1 in ("%time%") do set tttt=%%1%%2%%3%%4 Set DT=%ddd%%tttt% echo date %ddd% echo time %tttt% echo %DT% @echo on
这样在笔者PC上执行,分别输出:20200912 、 17332783 和 2020091217332783 (其中2783代表27.83秒),也许这就是最合适的格式
但如果到到另一台windows服务器上执行,即输出:Sat0912 、17332783 和Sat091217332783
也还有其他服务器执行,输出样式类似为:09122020、1000389 和 091220201000389 (可以看出小时位不足2位,格式上就不会前面的0)
因此在bat脚本中如果要使用到%date%和%time%,需要谨慎,最好是先到目标主机中测试一下的!否则可以结果与自己预想的不一致!
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13657862.html