2015-11-19 70 views
1

一個月前,我做了一個備份d的:\源到f:\備份服務器使用ROBOCOPY:的Windows:將文件複製到新的文件夾,如果沒有重複

robocopy d:\source\ f:\backup1\ /zb /XJ /COPY:DAT /e /v /R:1 /W:1 

現在我想打一個新的備份f:\ backup2的d:\ source並且僅複製f:\ backup1中不存在的文件,或者它們已被更改(在f:\ backup1中沒有重複)。

如何使用cmd.exe來做到這一點?

回答

2

先在列表模式(「空轉」)運行robocopy使用第一個備份文件夾中建立的更新/新的文件列表,然後手動將文件從該列表逐一複製:

setlocal enableDelayedExpansion 

set "source=d:\source" 
set "backup1=f:\backup1" 
set "backup2=f:\backup2" 

for /f "tokens=*" %%a in (' 
    robocopy "%source%" "%backup1%" /s /e /njh /njs /nc /ns /ndl /l 
') do (
    echo %%a 
    set "file=%%a" 
    set "dir=%%~dpa" 
    md "!dir:%source%=%backup2%!" 2>nul 
    copy /y /b "%%a" "!file:%source%=%backup2%!" >nul 
) 

NB這個簡化的代碼將不會處理文件名與!

相關問題