четверг, 9 декабря 2010 г.

Облегчаем себе копирование файлов на внешний диск

Иногда надо периодически сбрасывать на внешний диск один и тот же набор файлов много раз - например, делать копию документов и установочных файлов, собранных за время, прошедшее после предыдущего копирования - например, в пятницу. Конечно, можно руками выбирать и копировать, но это как-то неправильно, потому как машина должна работать, а человек думать. Размышления на тему облегчения ежепятничного копирования привело к появлению следующего .bat файла:

@echo off > nul

TITLE Backup Work Desktop to USB HDD

XCOPY /D /E /H /R /K /Y d:\Yaromax\Articles\*.* %CD%@Yaromax\Articles\*.*

XCOPY /D /E /H /R /K /Y d:\Yaromax\Books\*.* %CD%@Yaromax\Books\*.*

XCOPY /D /E /H /R /K /Y d:\Yaromax\Documents\*.* %CD%@Yaromax\Documents\*.*

XCOPY /D /E /H /R /K /Y d:\Yaromax\Pictures\*.* %CD%@Yaromax\Pictures\*.*

XCOPY /D /E /H /R /K /Y d:\Yaromax\Video\*.* %CD%@Yaromax\Video\*.*

XCOPY /D /E /H /R /K /Y d:\Yaromax\Install\*.* %CD%@Yaromax\Install\*.*

Файд сохраняем в корневом каталоге переносного диска, называем как-нибудь вроде backup_work.bat, и запускаем при подключенном внешнем диске и необходимости обновить файлы на нем. Что делает этот файл: берет файлы, измененные после последнего копирования (/D) из указанного каталога и подкаталогов (/E), включая скрытые файлы (/H), замещает в том числе файлы только для чтения (/R), копируется атрибут "только для чтения" (/R), подавляя запрос на перезапись существующих файлов (/Y), копирует на внешний диск, определяя назначенную ему букву (%CD%). Внимание: после %CD% ставить "\" не надо - %CD% разворачивается в путь, который выглядит, например так: H:\ . Как всегда в командной строке - больше информации по xcopy /? . Например, можно обрабатывать архивный бит, устанавливать дату, после которой копировать файлы, настраивать исключения, сравнивать файлы перед копированием. Короче - одна команда xcopy, совершенно прекрасно организующая резервное копирование без установки дополнительных программ, и - что приятно - "абсолютно безвозмездно, то есть даром" .