猿问

在Windows批处理脚本中格式化日期和时间

在Windows批处理脚本中格式化日期和时间

在Windows(Windows XP)批处理脚本中,我需要格式化当前日期和时间,以便以后在文件名中使用等。

它类似于Stack Overflow问题如何在批处理文件中附加日期,但也有时间。

到目前为止我有这个:

echo %DATE%echo %TIME%set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%echo %datetimef%

这使:

28/07/2009
 8:35:31.012009_07_28__ 8_36_01

有没有办法允许%TIME%的单个数字小时,所以我可以得到以下内容?

2009_07_28__08_36_01


慕娘9325324
浏览 1081回答 3
3回答

慕田峪7331174

我最终得到了这个脚本:set hour=%time:~0,2%if "%hour:~0,1%" == " " set hour=0%hour:~1,1%echo hour=%hour%set min=%time:~3,2%if "%min:~0,1%" == " " set min=0%min:~1,1%echo min=%min%set secs=%time:~6,2%if "%secs:~0,1%" == " " set secs=0%secs:~1,1%echo secs=%secs%set year=%date:~-4%echo year=%year%::在WIN2008R2上,例如我需要让你的'set month =%date:~3,2%'如下所示::否则00为MONTH出现set month=%date:~4,2%if "%month:~0,1%" == " " set month=0%month:~1,1%echo month=%month%set day=%date:~0,2%if "%day:~0,1%" == " " set day=0%day:~1,1%echo day=%day%set datetimef=%year%%month%%day%_%hour%%min%%secs%echo datetimef=%datetimef%

小唯快跑啊

@ECHO OFF: Sets the proper date and time stamp with 24Hr Time for log file naming: conventionSET HOUR=%time:~0,2%SET dtStamp9=%date:~-4%%date:~4,2%%date:~7,2%_0%time:~1,1%%time:~3,2%%time:~6,2% SET dtStamp24=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%if "%HOUR:~0,1%" == " " (SET dtStamp=%dtStamp9%) else (SET dtStamp=%dtStamp24%)ECHO %dtStamp%PAUSE
随时随地看视频慕课网APP
我要回答