需要使用bat文件

时间:2016-12-01 05:43:00

标签: file batch-file

我想创建一个批处理文件,单击该文件将创建一个名为12012016的文件夹。

我尝试使用命令

mkdir "E:\Meru\Work\Trace Reports\%date:~6,4%%date:~3,2%%date:~0,2%

但它的名称为20160112。

请帮忙

3 个答案:

答案 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%"