@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
在命令提示符和批处理文件中,您可以使用
%date%
和%time%
分别返回日期和时间。日期工作正常,但返回的时间值包含冒号,在文件名中使用是非法的,但有一种方法可以删除它们。使用类似的东西:
这将产生一个文件名,例如
file_172215_01062009.txt
更新:下面的评论对这个命令有一些有趣的变化,以及一些你可以避免的潜在问题。
使用
%DATE%
and/or%TIME
环境变量,可选地替换文件名中不允许的字符,使用%name:from=to%
(%TIME::=%
将删除所有冒号)。无论区域设置是什么,获得适当日期的唯一可靠方法是来自 foxidrive @ https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script的解决方案
在文件名中使用 %DATE% 变量。
还有一个 %TIME% 变量,但它包含文件名中不允许的字符。
这是将一行文本写入新文件的示例,其中创建的文件的名称中包含日期和时间。
使用
%date%
and%time%
变量,您可以使用命令来解析由或特定于语言环境的格式For /f
分隔的标记以更改格式。/