如何在Windows批处理脚本中创建带有日期时间的文件名
时间:2019-05-19 01:25:48 来源:igfitidea点击:
本教程将在Windows系统上创建名为当前日期时间的文件和目录。
例如,我们正在编写定期创建备份的脚本,现在我们希望使用当前日期和时间名称组织日常备份,以便更容易识别哪个文件夹包含哪个日期的备份。
在批处理脚本中获取日期和时间
Windows以 Thu 11/02/2017这样的格式接收日期。
下面3组命令分别提取YYYY格式的日期、MM格式的月、DD格式的日期,并分别存储在 CUR_YYYY、 CUR_MM、 CUR_DD变量中。
set CUR_YYYY=%date:~10,4% set CUR_MM=%date:~4,2% set CUR_DD=%date:~7,2%
接下来是解析可用 11:20:56.39(小时、分钟、秒和微秒)格式的时间。
现在提取小时、分钟、秒和微秒并将它们存储在变量中。
set CUR_HH=%time:~0,2% if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%) set CUR_NN=%time:~3,2% set CUR_SS=%time:~6,2% set CUR_MS=%time:~9,2%
现在,变量中有了当前日期和时间。
我们可以使用和创建任何文件名,根据要求,如:
set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS% mkdir %SUBFILENAME% echo "Welcome Here!" > access_%SUBFILENAME%.log
如果我们当前的日期时间是 Nov 02, 2017 15:41:36,那么上面的例子将在当前目录中创建一个名为“access_20170306-143822.log”的文件。
一个带有日期和时间的样例批处理脚本
完整的windows批处理脚本如下所示。
要对此进行测试,请创建一个包含以下内容的test.bat文件。
保存文件并执行脚本。
echo off set CUR_YYYY=%date:~10,4% set CUR_MM=%date:~4,2% set CUR_DD=%date:~7,2% set CUR_HH=%time:~0,2% if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%) set CUR_NN=%time:~3,2% set CUR_SS=%time:~6,2% set CUR_MS=%time:~9,2% set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS% mkdir %SUBFILENAME% echo "Welcome Here!" > access_%SUBFILENAME%.log
我们将看到创建了一个目录,名称为20171102-154136,并在当前目录中创建了一个文件,名称为access_20171102-154136.log(文件名将根据当前日期和时间,并将在测试期间更改)