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