获取系统时间的DOS命令

DOS

C:Usersyaozhendong>echo %date:~0,10% %time%
2011/12/24 19:45:41.25

前段时间工作中需要对一个地址做定时PING操作,并将结果输出到TXT文件中,为此做了个批处理文件,用到了获取系统时间的DOS命令“%date%”“%time%”。下面把具体使用方法记录如下

        文件内容示例:

“echo %date% %time%>>d:mwping%date:~0,10%_%time:~0,2%.%time:~3,2%.txt
ping 192.109.190.184 -l 1400 -n 1000>>d:mwping%date:~0,10%_%time:~0,2%.%time:~3,2%.txt”

“echo %date% %time%    ”   输出当前系统日期 时间

“>>        ”                           以追加方式写入">"以覆盖方式写入

"d:mw "                   输出文件目录

"ping%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.%time:~3,2%.txt"

                                       输出文件名

其中:

"%date:~0,10% "              从当前系统日期中第"0"位开始取出"10"位

"%time:~0,2% "              从当前系统时间中第"0"位开始取出"2"位

如果当前时间为:2007-03-09 星期五 15:44:00.73

此时执行就会在d:mw下生成:ping2007-03-09_15.44.txt文件.

注意:现在有个问题,如果当前时间是:2007-03-09 星期五 5:44:00.73

此时执行就会在d:mw下生成:ping2007-03-09_5:.4:.txt文件,

显然这是不可能的,因为":"在文件名中是非法字符,最终结果是:d:mw下生成:ping2007-03-09_文件.

就是说如果在10:00以前执行这个两批处理文件就不会得到我们想要结果,

解决的方法是将"%time:~0,2%.%time:~3,2%"改成"%time:~0,1%.%time:~2,2%"

这样的10:00以前执行就会生成正确的文件:ping2007-03-09_5.44.txt

但这样10:00以后执行就会出错,解决方法就不说了.

原文地址:https://www.cnblogs.com/liyanwei/p/7136234.html