Пакетный файл (англ. batch file) представляет собой текстовый файл , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. Редактировать такие файлы можно при помощи блокнота или любого другого текстового редактора. После запуска пакетного файла, программа — интерпретатор (как правило CMD.EXE или COMMAND.COM) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог cкриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, которые регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация и т. п. Пакетные файлы поддерживают операторы if, goto и for (в системах семейства Windows NT его возможности существенно расширены), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).
Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT.
Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (файлов .EXE либо любых других исполняемых файлов). Данные программы значительно расширяют возможности пакетных файлов.
Некоторые из специальных команд, используемых в пакетных файлах:
- call
- Вызов одного пакетного файла из другого.
- echo
- Вывод сообщений и переключение режима отображения команд на экране.
- for
- Запуск указанной команды для каждого из файлов в наборе.
- goto
- Передача управления в отмеченную строку пакетного файла.
- if
- Оператор условного выполнения команд в пакетном файле.
- pause
- Приостановка выполнения пакетного файла и вывод сообщения.
- rem
- Помещение комментариев в пакетные файлы.
- shift
- Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.