在其他编程语言中,要实现日期时间字符串的格式化,包括时间计算,都是比较简单的
但在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
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!