[英]Delete files that don't exist in another folder -Backup in Batch
我正在编写自己的批处理脚本,以将一些文件备份到外部。 这是到目前为止我得到的:
@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文件夹完全包含当前C驱动器中的内容,但是我不想删除xcopy的功能,而只复制新修改的文件。 有没有一种方法可以通过我的Documents文件夹进行递归并从Last中删除C:中不存在的任何文件?
换句话说,脚本的第一次运行会创建
Last\Documents\file1.txt and (Date)\Documents\file1.txt
第二次运行(其中从驱动器C:中删除了file1.txt)将在明天进行,其中包含:
Last\Documents\(no file1.txt) and (NewDate)\Documents\(no file1.txt)
但
(Date)\Documents\file1.txt
保持原样
我建议看一下robocopy中可用的镜像选项。 Robocopy现在默认在Windows 7中提供。 这是一个很好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.