Пакетный файл

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
BAT <tr><th style="white-space:nowrap;">Расширение файла:</th><td>.bat, .cmd (только Windows NT)</td></tr> <tr><th style="white-space:nowrap;">Тип формата:</th><td>Скриптовый язык программирования</td></tr>

Пакетный файл (англ. 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 или подобных оболочках.

Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно 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 — Windows 2000, XP и Vista основаны не на MS-DOS, а на Windows NT. NT-подобные системы включают интерпретатор cmd.exe, который частично совместим с COMMAND.COM. Некоторые старые возможности MS-DOS недоступны, однако вместо них появились дополнительные возможности и команды. COMMAND.COM до сих пор включается в NT-подобные системы для обеспечения лучшей обратной совместимости.

Существуют различные другие командные интерпретаторы, разработанные не компанией Microsoft и предоставляющие расширенный синтаксис команд для пакетного программирования. Примером может служить 4DOS.

Также имеются различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.

Использование в вирусописательстве

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

Пример

Пример простого пакетного файла:

rem echo off отключает режим отображения команд на экране.
@echo off
rem echo. печатает пустую строку.
echo.
echo Здравствуй, мир! Нажмите любую клавишу для запуска программы Program.exe! 
pause > nul
rem Запуск программы с аргументом, переданным при запуске пакетного файла
Program.exe %1
rem Обработка возможной ошибки
if errorlevel 1 goto error
echo.
echo Программа завершила свою работу!
goto end
:error
echo.
echo Произошла ошибка при работе программы
:end

См. также

Ссылки

cs:Dávkový soubor de:Windows Batch en:Batch file es:Batch fi:.BAT fr:.bat he:קובץ אצווה it:File batch ja:バッチファイル ko:배치 파일 ms:Fail kelompok nl:Batchbestand pl:Program wsadowy sv:Batchfil zh:批处理

Личные инструменты

Served in 0.219 secs.