2015-04-30 171 views
1

我必須使用.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 

只有日期文件夾,沒有文件在其複製 - 含

MY .bat文件。

請給解答。

+1

此行中的'%1'是錯字'mkdir'Z:\ MainFolder \%1%date%「'? – aphoria

回答

0

你會討厭有多難看到你的問題是!

您正在設置日期通過[SET date=%dd%-%mm%-%yyyy% ]設置命令中包含尾隨空格,因此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格式命名這樣一個目錄,以便正確排序。

相關問題