我想创建一个批处理文件,单击该文件将创建一个名为12012016的文件夹。
我尝试使用命令
mkdir "E:\Meru\Work\Trace Reports\%date:~6,4%%date:~3,2%%date:~0,2%
但它的名称为20160112。
请帮忙
答案 0 :(得分:0)
这个问题暗示你没有试图理解这个命令发生了什么......
部分拆分:mkdir
将创建一个包含您已给出名称的目录。
您使用fixxed字符串一起构建的名称,您决定使用E:\Meru\Work\Trace Reports\
和系统变量%date%
中的三个子字符串。
批处理中的子串如下所示:%variable_name:~last character NOT to use,number of characters you need%
。在您的情况下,它需要先是年份,然后是月份,最后是当天。您只需将部分从%date:~6,4%%date:~3,2%%date:~0,2%
更改为%date:~3,2%%date:~0,2%%date:~6,4%
。
变量%date%
根据时间格式的系统设置具有不同的值。另一种选择是命令wmic os get localdatetime
,我在另一个答案here中介绍了该命令,无论设置如何,它都将始终具有相同的输出格式。
答案 1 :(得分:0)
如果您已阅读此内容==> Windows batch file redirect output to logfile with date/time
你可以这样做:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set datestamp=%dt:~0,8%
set timestamp=%dt:~8,6%
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 stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
echo stamp: "%stamp%"
pause
echo datestamp: "%datestamp%"
pause
echo timestamp: "%timestamp%"
pause
set MyDateVar=%MM%%DD%%YYYY%
echo My desired Variable Date to use is : %MyDateVar%
pause
mkdir "E:\Meru\Work\Trace Reports\%MyDateVar%"
pause
答案 2 :(得分:0)
因为现在已经过了好几个小时了:
mkdir "E:\Meru\Work\Trace Reports\%date:~0,2%%date:~3,2%%date:~6,4%"