簡體   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