如何通过.bat文件在文件夹中创建文件夹

时间:2015-04-30 07:32:10

标签: batch-file

我必须使用.bat文件备份包含3个文件夹的文件夹。结构是MainFolder \ First Folder,MainFolder \ Second Folder,MainFolder \ Third Folder。我希望备份为MainFolder \ 30-04-2015 \ FirstFolder,MainFolder \ 30-04-2015 \ SecondFolder,MainFolder \ 30-04-2015 \ ThirdFolder。

我的.bat文件包含 -

@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%dd%-%mm%-%yyyy% 

mkdir "Z:\MainFolder\%1%date%"

xcopy "C:\MainFolder\FirstFolder"  "Z:\MainFolder\%date%\FirstFolder"  /s/i
xcopy "C:\MainFolder\SecondFolder"  "Z:\MainFolder\%date%\SecondFolder"  /s/i
xcopy "C:\MainFolder\ThirdFolder"   "Z:\MainFolder\%date%\ThirdFolder" /s/i

仅创建日期文件夹,并且不会复制任何文件。

请给出解决方案。

1 个答案:

答案 0 :(得分:0)

你会讨厌有多难看出你的问题!

您通过[SET date=%dd%-%mm%-%yyyy% ]设置日期。尾随空格包含在set命令中,因此稍后xcopy目标变为"Z:\MainFolder\05-01-2015 \FirstFolder" - 这当然不存在且无效。

您还可以按如下方式简化日期设置: FOR /F "TOKENS=2,3,4 DELIMS= -" %%A IN ('DATE/T') DO SET dt=%%A-%%B-%%C 请注意,我使用dt而不是覆盖内置日期环境变量。您可能必须切换%% A和%% B - 因为我认为您在代码中正在切换月份和日期。我通常以yyyy-mm-dd格式命名这样的目录,以便正确排序。