一个月前,我使用robocopy将d:\ source备份到f:\ backup1:
robocopy d:\source\ f:\backup1\ /zb /XJ /COPY:DAT /e /v /R:1 /W:1
现在我想创建一个d:\ source的新备份f:\ backup2,并只复制f:\ backup1中不存在的文件或者它们已被更改(f:\中没有重复)备份服务器1)。
如何使用cmd.exe执行此操作?
答案 0 :(得分: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
)
N.B。此简化代码不会使用!