«Автоматизация создания резервов» или «Консольные основы: bat-ники»
Главная - Компьютерные 2 февраля, 2012
Думаю, что многие, так или иначе, периодически создают резервные копии(так называемые backup-ы) тех или иных файлов и папок. Вроде все привычно и делать ничего особо сложного не надо: вставить флешку, открыть “Мой компьютер“, найти что надо скопировать, выделить, тыкнуть мышкой, выбрать “скопировать”, перебраться в нужный каталог, тыкнуть “вставить” и тд.

Но зачастую все эти клики и лишние телодвижения несколько утомляют и отнимают ценное время, особенно при частых копированиях одних и тех же данных. В этой статье я расскажу как автоматизировать этот процесс по средством консоли, а точнее написания bat-файла. Поехали.
Немного теории.
Для начала немного о том, что такое bat-файлы, зачем они нужны и с чем их едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии:
Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог shell script в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в DOS имеют расширение .bat; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2, или .BTM в 4DOS или подобных оболочках.
С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.
Создаем и используем.
Давайте подготовим небольшое тестовое поле, чтобы было на базе чего экспериментировать. Откройте мой компьютер и создайте на диске C:\ папочку test. Зайдите в неё и создайте в ней папку testcopy. Накидайте туда файлов (штук 5-10) – фотки, документы и тд и тп(любых короче). Поле для экспериментов готово. Далее нам надо создать, собственно, сам bat-файл по нажатию на который у нас будет происходить копирование папки C:\test\testcopy в, скажем, папку C:\test\backup. Создавать вторую папку(которая backup) не надо – она будет появляться автоматически.
Создать bat-файлик очень просто. Жмем правой кнопкой мышки там где хотим его создать (расположение не важно – можно прямо на рабочем столе) и выбираем “Создать” – “Текстовый документ“. Задаем созданному файлу название и открываем его блокнотом или любым другим текстовым редактором. Т.е. на данный момент мы имеем открытый текстовый файлик, который называется, допустим, копирование.txt. Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводится по средством консоли (cmd) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:
xcopy C:\test\testcopy C:\test\backup /f /i /y /s
Разъясняю что тут к чему:
- xcopy – это сама команда.
- C:\test\testcopy – это источник, т.е. папка откуда копируются файлы и каталоги.
- C:\test\backup – это результат, т.е. место, куда будут скопированы файлы и каталоги.
- /f /i /y /s — дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).
Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.
Далее, касательно синтаксиса(какие дополнительные параметры есть, какие можно дописать и зачем они нужны).
Какие есть(т.е. те, что я указал в данном примере):
- /f — выводит имена исходных файлов и файлов-результатов в процессе копирования
- /i – создает новый каталог в случае, если тот отсутствует в конечном пути
- /y – перезаписывает файл в случае, если он уже есть
- /s – копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
Как по мне – это основной список параметров необходимых для “тихого” копирования, т.е. без лишних вопросов о перезаписи, создания каталогов и прочей шушеры. Касательно остального синтаксиса можно почитать, например, тут.
Далее нам надо сменить формат файла с txt на bat. Делается это следующим образом.
Сначала открываем “Мой компьютер“, там переходим “Сервис” – “Свойства папки” – “Вид” и снимаем галочку “Скрывать расширение для зарегистрированных типов файлов“. Жмем “Применить” и “Ок“. Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем “Переименовать” и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно). В результате мы имеем следующую картину(в вашем случае файлик называется иначе, но имеет тот же формат):

Собственно, все, что нам остается – это запустить этот файл простым кликом по нему мышки. Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:

Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на .txt и открыв любым текстовым редактором.
Послесловие.
Как я уже сказал и Вы сами наверное осознали – использование подобного bat‘ника зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования. При желании можно поставить запуск этого bat-ника в определенные дни через планировщик Windows(или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup‘ов.
Если есть какие-то вопросы или проблемы – спрашивайте. Как всегда помогу чем смогу
PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела “Автоматизация администрирования“... так что можете собой гордится
Источник: sonikelf.ru
Еще о «Автоматизация создания резервов» или «Консольные основы: bat-ники»
Как изменить расширение файлов или создать файл
Сегодня я дам краткие инструкции по созданию/изменению файлов любого формата. Дело в том, что не все знают, как изменить расширение файла,
Не скачиваются не копируются файлы больше 4 Гб [решение]
Часть пользователей все еще сталкиваются с проблемой оперирования с файлами размером больше 4 ГБ. Как правило, все чаще это происходит при
Ошибка NTLDR is missing [решение]
Эта статья о небольшой ошибке операционной системы Windows, с которой могут столкнуться некоторые пользователи в ходе работы. Надо сказать, что ошибка
Легальное продление Windows Vista
Если Вы вдруг (чего надеюсь не случилось) все таки поставили себе Windows Vista, но исключительно 30-дневную пробную версию и решили
Заметки о x64. Часть 2
По сравнению с первой заметкой эта будет совсем небольшой. Пара слов о x64-системах Собственно, на днях таки поставил Adobe Photoshop CS4 (хотя