Удалить файлы, которые не существуют в другой папке -Backup in Batch - PullRequest
1 голос
/ 06 января 2012

Я пишу свой собственный пакетный скрипт для резервного копирования некоторых файлов на внешний. вот что у меня так далеко:

@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!

Итак, в итоге две папки: последняя и сегодняшняя дата будут содержать одно и то же. Я хочу, чтобы последняя папка содержала именно то, что находится на моем диске C в настоящее время, однако я не хочу удалять функциональность xcopy, копируя только измененные файлы. Есть ли способ пройти через мою папку «Документы» и удалить из «Последнего» любые файлы, которые не существуют в 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 

остается без изменений

1 Ответ

0 голосов
/ 06 января 2012

Я бы посоветовал взглянуть на опции зеркала, доступные в robocopy. Robocopy поставляется по умолчанию в Windows 7 сейчас. Это отличный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...