Пакетный файл
| Расширение |
|
|---|---|
| Тип формата |
Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог cкриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы if, goto и for (в системах семейства Windows NT его возможности существенно расширены), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2, или .BTM в 4DOS или подобных оболочках.
Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (файлов .EXE либо любых других исполняемых файлов). Данные программы значительно расширяют возможности пакетных файлов.
Содержание |
[править] История
Программирование пакетных файлов появилось в MS-DOS и Windows с самого зарождения этих операционных систем. Командные интерпретаторы этих систем предлагают два режима работы: интерактивный режим (когда пользователь непосредственно вводит команды в командной строке и немедленно их исполняет) и пакетный режим (когда пользователь запускает предварительно записанную последовательность команд). Концепция обоих режимов была почерпнута из различных Unix-оболочек, равно как и из других текстовых интерфейсов командной строки начала 1980-х годов, таких как CP/M.
Командный интерпретатор в MS-DOS имеет название COMMAND.COM. Эволюция этой ветви пакетного программирования прошла через различные версии MS-DOS к Windows 95, Windows 98 и, наконец, к Windows ME. Наиболее известным пакетным файлом в этих системах является AUTOEXEC.BAT, специальный пакетный файл, который исполняется во время загрузки операционной системы.
Версии Windows семества NT (Windows 2000, XP и далее) основаны не на MS-DOS. NT-подобные системы включают интерпретатор cmd.exe, который частично совместим с COMMAND.COM. Некоторые старые возможности MS-DOS недоступны, однако вместо них появились дополнительные возможности и команды. COMMAND.COM до сих пор включается в NT-подобные системы для обеспечения лучшей обратной совместимости.
Существуют различные другие командные интерпретаторы, разработанные не компанией Microsoft и предоставляющие расширенный синтаксис команд для пакетного программирования. Примером может служить 4DOS.
Также имеются различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.
[править] Пример
Код программы калькулятор:
-
@ echo off
-
:begin -
Cls
-
Title Калькулятор
-
Color 71 -
Echo Введите уравнение: -
Set /P exp=
-
Set /A result=%exp%
-
Title Вычислено
-
Echo Ваше уравнение: %exp% -
Echo Решение: %result% -
Pause>nul -
goto begin
все пронумерованные действия описаны ниже.
- Выключение вывода выполняющихся команд на экран.
- Метка, создающая цикличность программы.
- Очистка экрана.
- Изменение заголовка окна на строку «Калькулятор».
- Изменение цвета шрифта и цвета фона (тёмно-синий на светло-сером).
- Вывод строки "Введите уравнение: ".
- Создание переменной %exp%, значением которой будет уравнение, введенное пользователем.
- Создание переменной %result%, которая вычисляет значение переменной %exp%, то есть решает уравнение, введенное пользователем, и содержит решение уравнения.
- Изменение заголовка на строку «Вычислено».
- Вывод строки "Ваше уравнение: " и значения переменной %exp%.
- Вывод строки "Решение: " и значения переменной %result%.
- Остановка выполнения кода до нажатия любой клавиши.
- Переход на метку begin, выполнение кода начнется со следующей после метки команды.
[править] См. также
[править] Ссылки
- Пакетные (batch, bat) файлы WindowsFAQ
- Синтаксис некоторых команд пакетного файла (рус.). Подробная справка.
- Команды пакетного файла (англ.). Краткая справка.
- Виталий Бочкарёв. Сценарии для администрирования (31 августа 2009). Проверено 15 декабря 2009.
- Алексей Александров. Урок bat-аники // RSDN Magazine. — 27 октября 2005. — № 2.
- Microsoft Windows 98. Bat файлы
- Билл Стюарт. 10 советов по использованию сценариев // Windows IT Pro. — Открытые системы, ???. — № ???.
- Форум «Скриптовые языки администрирования Windows»
- Форум «Задачи на bat-файлах»
- Форум BAT\CMD