Основы создания и использования bat-файлов.
BAT-файл (также известен как пакетный или командный) представляет собой текстовый документ с расширение .bat или .cmd, который содержит сценарии выполняемых команд. В одном сценарии может быть чуть ли не целая программа, которая будет копировать, удалять, перемещать файлы, запускать программы и т.п. Такая технология позволяет пользователю создавать программы пакетной обработки, выполняющие несколько последовательно записанных команд. Мы же познакомимся с самыми распространенными из них. Но прежде, стоит отметить, что бетники иногда довольно привередливые. Они, например, не понимают длинные имена файлов, такие, как C:\Program Files. Зато хорошо воспринимают короткие - C:\PROGRA~1. Эту неприятность можно побороть очень простым способом. Заключите длинное название в кавычки - C:\"Program Files". И всё заработает.
Для примера создадим простенький BAT-файл, который будет запускать стандартный Блокнот. Как известно, файл блокнота имеет название Notepad.exe и расположен он в каталоге Windows. Итак, создаем текстовый документ и копируем в него следующий набор команд:
start C:\Windows\Notepad.exe |
Теперь сохраняем и переименовываем файл, например, на Run.bat. При этом на вашем компьютере должен быть включен режим отображения расширения для зарегистрированных типов файлов, чтобы вы смогли переименовать расширение с .txt на .bat. Включается этот режим в проводнике в "Свойствах папки".
В данном примере команду start, которая запускает файл Notepad.exe, можно было вообще не указывать, но ее применение иногда оправдано. Ведь данная команда содержит интересные параметры, например, /min - запуск программы в свернутом окне и /max - запуск программы в развернутом окне на весь экран. Любой из перечисленных параметров должен идти после команды start и перед запускаемым файлом. Следующий пример демонстрирует запуск Блокнота в свернутом режиме.
start /min C:\Windows\Notepad.exe |
Хочу заметить, что и сам Блокнот понимает командную строку. Поэтому мы можем усложнить данный алгоритм. Наша задача - открыть в блокноте какой-нибудь файл и показать его на весь экран. Возьмем для этого, к примеру, файл win.ini.
start /max C:\Windows\Notepad.exe C:\Windows\win.ini |
Заметьте, что между командами и параметрами стоят пробелы, они - обязательны. С помощью команды start можно не только запускать приложения, а также открывать, просматривать файлы и папки, если указать их в качестве параметра, т.е. в нашем случаем вместо блокнота.
С помощью бетников мы может проводить и более существенные операции - копирование, переименование и удаление файлов. За эти операции отвечают соответственно команды copy, move и del.
Скопируйте файл win.ini из каталога Windows в корень диска:
copy C:\Windows\win.ini C:\win.ini |
Тоже самое и с переименованием. Превратим файл win.ini в документ trash.txt:
move C:\win.ini C:\trash.txt |
Теперь удаляем файл trash.txt.
del C:\trash.txt |
Прежде чем что-нибудь удалить, обязательно сделайте резервные копии.
Пакетные файлы, как и командная строка, предоставляют возможность работы с переменными окружения, которые хранят различные системные параметры. Например %WINDIR% - размещение каталога Windows, а %TEMP% и %TMP% содержат пути к системной и пользовательской папкам для временных файлов соответственно. Именно двумя последними каталогами мы сейчас и займемся. Многие пользователи, уделяют большое внимание чистке Windows от временных файлов. Обычно для такой процедуры требуется перейти в папку временных файлов, выделить содержимое и удалить. После написания простенького bat-файла очистка временных каталогов выполняется запуском файла с Рабочего стола, а если ярлык бетника поместить в Автозагрузку, то это будет происходить автоматически при каждой загрузки системы.
del /f /s /q %TEMP% del /f /s /q %TMP% |
В этом примере для команды del были использованы специальные ключи: /f - удаление файлов, помеченных "только для чтения", /s - удаление из всех подкаталогов, /q - избавляет пользователя от подтверждения.
Для удобного экспериментирования в бетниках была создана команда rem, которая указывает на то, что строка является комментарием. Поставьте ее в начало строки с последующим пробелом и она будет проигнорирована. Существует и другая команда для комментирования - echo. С ее помощью можно создать даже некую картину на экране:
@echo off echo. echo. //////////// -= LENIN INC =- \\\\\\\\\\\ echo. / \ echo. / Online: http:\\www.lenininc.com \ echo. / E-Mail: [email protected] \ echo. / \ echo. / (c)2009 by Vladimir Drigalkin \ echo. / \ echo. ////////////////////\\\\\\\\\\\\\\\\\\\\ echo. pause |
Здесь первая строка echo off - отключает режим отображения команд и при этом не выводит на экран строку самой команды, т.к. это запрещает символ @ перед ней. Кроем этого, после каждой команды поставлена точка. Вместо нее может быть любой другой символ (он отображается, точка менее заметна), главное, чтобы он был, если вы располагаете комментарий не сразу после пробела.
Похожим способом можно отобразить и текстовый файл. Очень важно, чтобы он был сохранен в кодировке DOS. Это обязательно для русского текста, иначе текст будет отображен "ёжиками". Отобразим это в нашем бетнике.
type C:\Windows\win.ini pause |
Как видите, в последних двух примерах была использована еще одна команда - pause. Она позволяет организовать задержку закрытия окна командной строки, пока пользователь не нажмет любую клавишу.
Кроме описанных выше действий, пакетные файлы способы создавать каталоги и при этом название этих каталогов может быть в виде текущего дня, месяца и года.
md C:\%date:~-10% md C:\%date:~0,2%_%date:~3,2%_%date:~6,4% |
Такие команды создадут в корне системного диска две папки с именем равным текущей дате. В первом варианте день, месяц и год разделены между собой точкой, а во втором - нижним слешем.