繁体   English   中英

删除另一个文件夹中不存在的文件-批量备份

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM