批处理bat获取当前时间并以当前时间创建txt文件
1赞
发表于 5/1/2017 12:39:16 PM
阅读(34996)
以下内容均在自己的笔记本电脑上实现。
首先,在cmd中查看系统日期date的格式,如下图所示,即yyyy\mm\dd week。
然后,在cmd中查看系统时间time的格式,如下图所示,即hh:mm:ss.MsMs。需要注意的是hh,其十位数可能是空格,我们希望在创建txt文件时将该空格用0代替。
以yyyymmddhhmmss.txt(年月日时分秒)的格式创建txt文本,批处理test.bat实现如下:
@echo off set "year=%date:~0,4%" set "month=%date:~5,2%" set "day=%date:~8,2%" set "hour_ten=%time:~0,1%" set "hour_one=%time:~1,1%" set "minute=%time:~3,2%" set "second=%time:~6,2%" if "%hour_ten%" == " " ( type nul > %year%%month%%day%0%hour_one%%minute%%second%.txt ) else ( type nul > %year%%month%%day%%hour_ten%%hour_one%%minute%%second%.txt ) pause
运行test.bat(在不同的时间运行了两次),产生txt文件如下所示,可见设计是正确的。
如果不对hh的十位数进行判断,直接用下面的批处理bat实现,将发生错误。
@echo off set "year=%date:~0,4%" set "month=%date:~5,2%" set "day=%date:~8,2%" set "hour_ten=%time:~0,1%" set "hour_one=%time:~1,1%" set "minute=%time:~3,2%" set "second=%time:~6,2%" type nul > %year%%month%%day%%hour_ten%%hour_one%%minute%%second%.txt pause
如果hh的十位数不为空,则生产的txt文本没问题的;如果hh的十位数为空,则生产的txt文本有问题,cmd控制台提示错误信息,同时生产的txt文件名错误,如下所示,即批处理在处理空格时丢失了hhmmss.txt。