Делаем резервные копии с помощью BAT-файла

Рубрика: Дневник -> Windows -> Полезности
Понедельник, 18 августа 2008 г.
Просмотров: 7431
Подписаться на комментарии по RSS
]]>
]]>

Программ для создания резервных копий (backup, бэкап) великое множество. Есть и платные, есть и бесплатные. В некоторых используются «мастера», которые позволяют указать массу параметров, не прибегая к сложному процессу настройки.

Однако сам процесс резервирования на самом же деле - обычное копирование. Есть конечно варианты, вроде: архивирования, отслеживание изменений и т.д., но для большинства случаев сам алгоритм сводится к простым действиям:

  • выбор исходных данных (каталог, файлы);
  • выбор куда копировать (каталог);
  • непосредственно копирование.
Так вот для того, чтобы выполнить все эти операции совсем не обязательно прибегать к помощи сторонних программ. Всё необходимое уже есть в Windows.

Для того, чтобы скопировать файл/каталог используется команда xcopy. Она имеет много параметров, но в общем случае указывается так:

  1.  xcopy "D:\myfiles\*.*" "j:\backup\myfiles\*.*"

Данная команда скопирует каталог «d:\myfiles\» в «j:\backup\myfiles\».

Итак наши действия очень просты. Вначале откроем Notepad2. В нем нужно указать те каталоги, которые следует резервировать. Лично у меня важные данные хранятся в нескольких каталогах: «txt», «work» и т.д.

Вторым параметром мы указываем куда следует скопировать. Обычно я для резервирования использую внешний жесткий диск (USB).

Для того, чтобы Windows при каждом его подключении присваивала одну и ту же букву диска, нужно войти в Панель управления - Администрирование - Управление Компьютером - Управление дисками. На подключенном диске кликните правой кнопокй мыши и выберите «Изменить букву диска или путь к диску...». В открывшемся окне выберите «Изменить» и укажите нужную букву. Например, у меня указано «J».

Для удобства лучше сохранять имена каталогов, чтобы потом не запутаться. А сам бэкап я размещаю в отдельном каталоге «backup».

Алгоритм копирования будет таков: мы будем копировать только новые файлы, старые будут затираться. При этом мы не будем удалять уже несуществующие в исходном каталоге файлы. Всё это достигается указанием параметров для xcopy.

Вот рабочий пример резервирования кошельков WEBMONEY и Яндекс-Деньги:

  1.  xcopy "C:\Program Files\WEBMONEY\*.*" "j:\backup\WEBMONEY\*.*" /E /F /H /R /K /Y /D
  2.  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\»:

  1.  del "j:\backup\work_old\" /s /q
  2.  rmdir "j:\backup\work_old\" /s /q
  3.  rename "j:\backup\work\" "work_old"
  4.  xcopy "c:\work\*.*" "j:\backup\work\*.*" /E /F /H /R /K /Y /D

Команда «del» удаляет все файлы из каталога. Команда «rmdir» удаляет пустой каталог. Команда «rename» переименовывает каталог или файлы. А командой «xcopy» мы, как обычно, копируем файлы.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

Комментариев: 11

Вы можете получать новые комментарии к этой записи по RSS или оформить подписку на все комментарии сайта. Или даже на все новые записи сайта. Не знаете, как это сделать?
  1. 2008-08-19 в 17:44:22 | Dimox

    Давно пользуюсь данной техникой. Действительно, все очень просто и удобно.

  2. 2008-08-20 в 23:41:45 | sin

    Еще можно подключить к всему этому WinRar с команднной строки.

    Тоесть при таком бэкапе попутно все сжимать на лету.

    Кстати говоря у Рара довольно много интересных параметров командной строки, можно даже сделать резервирование со сверкой дат изменения, и не затрагивать не измененные данные, обновляя только измененное и добавляя новое.

  3. 2008-08-21 в 14:30:58 | ihtiandr

    Спасибо, сделал себе такое, очень удобно.

  4. 2008-08-22 в 15:16:59 | aLeXgO

    Спасибо, Максим, за описание столь полезного и простого способа копирования.

    Помню как-то Вы упоминали о таком способе резервного копирования, но не описали подробно. Исправились =)

  5. 2008-08-23 в 18:54:09 | Leo

    Я в своей практике много вариантов "бакапирования" пробовал, в том числе и подобные (эдакий без замутов и всем все понятно - вариант для конторы, кстати, слабо заменимый).

    А лично для себя давно и бесповоротно выбрал (из ~20 разных бэкаперов, что нашел тогда) Genie Backup Manager. Все же, в определенный момент надоедает править батники.. ;)

  6. 2008-08-25 в 10:09:14 | Стай

    Вообще оказывается оч даже удобно, спасибо за помощь.

  7. 2008-08-27 в 15:50:54 | Mba

    Интересный способ. Но все равно считаю более удобным пользоваться специальным софтом (как тот же GBM в комменте Leo).

  8. 2008-08-27 в 22:58:27 | Gordon

    Спасибо за статью,всё просто и удобно !

  9. 2008-10-19 в 00:57:22 | stasiska

    парни как защитить диск от перезаписи :cool:

  10. 2009-05-28 в 19:06:17 | Vini

    Есть интересный сайт с примерами по данной теме http://cerber.synkmaster.ru

  11. 2009-08-13 в 10:57:03 | person@g

    Bat-файл можно создать и в обычном блокноте (notepad.exe) в DOS кодировке.Для этого просто выбрать шрифт Terminal

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)