我正在编写自己的批处理脚本来将一些文件备份到外部。这是我到目前为止所得到的:
@echo off
:: variables
set /p dname=Enter the Backup drive's drive letter:
set drive=%dname%:\Backup
set folder=%%date:~4,2%_%date:~7,2_date:~10,4%%
set backupcmd=xcopy /s /c /d /e /h /i /r /y /q
echo ### Backing up My Documents...
%backupcmd% "%USERPROFILE%\Documents" "%drive%\Last\Documents"
echo ### Backing up Favorites...
%backupcmd% "%USERPROFILE%\Favorites" "%drive%\Last\Favorites"
echo ### Setting backup folder of today's date...
%backupcmd% "%drive%\Last\Documents" "%drive%\%folder%\Documents"
%backupcmd% "%drive%\Last\Favorites" "%drive%\%folder%\Favorites"
echo Backup Complete!
所以最后两个文件夹:Last和today的日期将包含相同的内容。我希望Last文件夹当前包含我的C驱动器中的确切内容,但是我不想删除仅复制新修改文件的xcopy功能。有没有办法递归我的Documents文件夹并从Last中删除C中不存在的任何文件:?
换句话说,首次运行脚本会创建
Last\Documents\file1.txt and (Date)\Documents\file1.txt
第二次运行(其中file1.txt已从驱动器C中删除:)明天发生并包含:
Last\Documents\(no file1.txt) and (NewDate)\Documents\(no file1.txt)
但是
(Date)\Documents\file1.txt
保持不变
答案 0 :(得分:0)
我建议查看robocopy中可用的镜像选项。现在,Windows 7中默认使用Robocopy。这是一个很好的方式。