2016-11-25 186 views
1

大家好:)我有以下問題需要解決。 :我需要在運行始終刷新後自動在文件中複製文件夾。我想每週都做一次(例如每週三),我需要將文件複製到名稱爲當前日期的文件夾中。我的想法如下:使用copy命令創建一個批處理文件,並創建文件夾並將其放入任務計劃程序。批處理文件夾自動複製

批處理文件代碼:

d: 
cd testfolder 
SET datefolder="%date% 
mkdir %datefolder% 
xcopy "d:\folder\from copy" "d:\folder\to copy" /E /H /C /R /Q /Y 

此代碼將生成以當前日期的文件夾。 (2016. 11. 25)與空間。

問題是,我不知道如何添加到路徑不斷變化的文件夾名稱。

像這樣的東西(這不起作用!)

xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%" /E /H /C /R /Q /Y 

非常感謝幫助:)

回答

0
SET "datefolder=%date%" 
mkdir "%datefolder%" 
xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%\" /E /H /C /R /Q /Y 

的`設置 「VAR =價值」 語法防止不必要的尾部空格被包含在分配的值中。存儲的值不會包含引號。通過這種方式,可以控制報價。

0

我看到幾個問題。您沒有指定您收到的錯誤消息,但看起來好像是因爲您的set命令中有單引號。你把它放到你的xcopy命令中,然後你有一個帶3個引號的參數(一個不匹配),這是行不通的。

您可以簡單地將%date%放入xcopy命令;沒有理由將其設置爲%datefolder%。除此之外,您將根據日期格式創建子文件夾。對我來說,echo %date%給出了「ddd MM/dd/yyyy」,這意味着我最終得到了dd子文件夾和另一個子文件夾yyyy。它與xcopy命令一起工作,但它不完全符合你的要求。

如果這還不夠好,您將不得不以兩種方式之一創建日期文件夾格式。您可以解析%date%並使用子字符串提取(請參閱help set)或令牌(請參閱help for),或者您可以進行PowerShell調用。

例1:

for /f "tokens=1-4 delims=/ " %%a in ("%date%") do set datefolder=%%d. %%b. %%c 

例2:

for /f "delims=" %%a in ('"powershell [DateTime]::Now.ToString('yyyy. MM. dd')"') do set datefolder=%%a 

編輯:您也想用\讓XCOPY知道這是一個目錄來終止您的目標文件夾。

0

感謝您的快速回答:)

是的,這就是正確的這個版本不工作:

SET "datefolder=%date%" 
mkdir "%datefolder%" 
xcopy "d:\folder\from copy" "d:\folder\to copy\%datefolder%\" /E /H /C /R /Q /Y 

但這個工程:

echo 
d: 
cd testfolder 
SET datefolder="%date%" 
mkdir %datefolder% 

xcopy d:\folder\from copy d:\folder\to copy\%datefolder% /E /H /C /R /Q /Y 

我需要指定的日期在一個變量中,其他方式不適用於我。 (創建3個月份和年份的文件夾)在所有的「」標誌都是xcopy命令中的問題謝謝:)

相關問題