Делаем резервные копии с помощью BAT-файла
Программ для создания резервных копий (backup, бэкап) великое множество. Есть и платные, есть и бесплатные. В некоторых используются «мастера», которые позволяют указать массу параметров, не прибегая к сложному процессу настройки.
Однако сам процесс резервирования на самом же деле - обычное копирование. Есть конечно варианты, вроде: архивирования, отслеживание изменений и т.д., но для большинства случаев сам алгоритм сводится к простым действиям:
- выбор исходных данных (каталог, файлы);
- выбор куда копировать (каталог);
- непосредственно копирование.
Так вот для того, чтобы выполнить все эти операции совсем не обязательно прибегать к помощи сторонних программ. Всё необходимое уже есть в Windows.
Для того, чтобы скопировать файл/каталог используется команда xcopy. Она имеет много параметров, но в общем случае указывается так:
xcopy "D:\myfiles\*.*" "j:\backup\myfiles\*.*"
Данная команда скопирует каталог «d:\myfiles\» в «j:\backup\myfiles\».
Итак наши действия очень просты. Вначале откроем Notepad2. В нем нужно указать те каталоги, которые следует резервировать. Лично у меня важные данные хранятся в нескольких каталогах: «txt», «work» и т.д.
Вторым параметром мы указываем куда следует скопировать. Обычно я для резервирования использую внешний жесткий диск (USB).
Для того, чтобы Windows при каждом его подключении присваивала одну и ту же букву диска, нужно войти в Панель управления - Администрирование - Управление Компьютером - Управление дисками. На подключенном диске кликните правой кнопокй мыши и выберите «Изменить букву диска или путь к диску...». В открывшемся окне выберите «Изменить» и укажите нужную букву. Например, у меня указано «J».
Для удобства лучше сохранять имена каталогов, чтобы потом не запутаться. А сам бэкап я размещаю в отдельном каталоге «backup».
Алгоритм копирования будет таков: мы будем копировать только новые файлы, старые будут затираться. При этом мы не будем удалять уже несуществующие в исходном каталоге файлы. Всё это достигается указанием параметров для xcopy.
Вот рабочий пример резервирования кошельков WEBMONEY и Яндекс-Деньги:
xcopy "C:\Program Files\WEBMONEY\*.*" "j:\backup\WEBMONEY\*.*" /E /F /H /R /K /Y /D xcopy "C:\Program Files\Wallet\*.*" "j:\backup\Wallet\*.*" /E /F /H /R /K /Y /D
Эти строки нужно скопировать в Notepad2 и сохранить в файле с расширением «.bat», например «backup.bat». Теперь нам достаточно только запустить его и все будет сделано автоматически.
Теперь обратите внимание, что пути мы указываем в кавычках «"» - это требование Windows для длинных имен. Каталоги разделяются обратным слэшем «\». В конце указываются параметры для xcopy.
То есть вам нужно только указать ваши каталоги для резервирования и сохранить как «backup.bat». Вы можете сделать несколько таких файлов: процесс копирования может иногда занимать много времени, поэтому какие-то совсем критичные данные я копирую чаще - для них существует другой файл «QiuсkBACKUP.BAT».
Естественно вам нужно сделить за тем, чтобы на приёмном диске было достаточно места.
Теперь следующий момент, с которым вы можете столкнуться - неверная кодировка текста. Дело в том, что русские буквы для DOS (где и происходит копирование) отличаются от Windows (где вы создали bat-файл). Например у меня есть каталог «c:\Избранное\». Если я запущу bat-файл, то ничего не произойдет, поскольку xcopy его просто не найдет. Поэтому наш bat-файл нужно преобразовать в DOS-кодировку (её часто называют «OEM»).
Для этого мы выделяем такие строчки в Notepad2 и жмем Ctrl+Shift+O (или Edit - Convert - To OEM Text). Вы увидите «белиберду», но не пугайтесь, так и должно быть. В моем примере это выглядит так: «c:\€§Ўа ®Ґ\»
Если у вас есть Total Commander, то вы можете просмотреть этот файл по F3 и в просмотрщике переключить кодировку - клавиша «S».
Следующая задача, которой я не пользуюсь, но возможно вам пригодится - это копирование актуальной версии каталога, а старый бэкап переименовывается в «old».
Здесь задача совсем несложная: вначале нужно удалить старый «old», после этого переименовать текущий бэкап в «old» и скопировать как обычно xcopy. Вот пример резервирования каталога «c:\work\»:
del "j:\backup\work_old\" /s /q rmdir "j:\backup\work_old\" /s /q rename "j:\backup\work\" "work_old" xcopy "c:\work\*.*" "j:\backup\work\*.*" /E /F /H /R /K /Y /D
Команда «del» удаляет все файлы из каталога. Команда «rmdir» удаляет пустой каталог. Команда «rename» переименовывает каталог или файлы. А командой «xcopy» мы, как обычно, копируем файлы.
Постоянная ссылка: http://maxsite.org/?p=405
Версия для печати
RSS: Делаем резервные копии с помощью BAT-файла
