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

Поделись знанием:
(перенаправлено с «.bat»)
Перейти к: навигация, поиск
Пакетный файл
Тип формата

Скриптовый язык программирования

Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла программа-интерпретатор (как правило, COMMAND.COM или cmd.exe) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.

Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2 или .BTM в 4DOS (англ.) или подобных оболочках.





История

Поддержка пакетных файлов имелась в MS-DOS с самого начала. Командные интерпретаторы этой системы (а затем и Windows) предлагают два режима работы: интерактивный (когда пользователь подтверждает выполнение каждой команды пакетного файла) и обычный (когда все команды пакетного файла выполняются без подтверждения). Концепция обоих режимов была почерпнута из интерфейсов командной строки предшествующих ОС (таких как CP/M) и Unix-оболочек.

Командный интерпретатор в MS-DOS (а следом и в семействе Windows 9x) имеет название COMMAND.COM. Наиболее известным пакетным файлом в этих системах является AUTOEXEC.BAT, который автоматически исполняется COMMAND.COM во время загрузки операционной системы.

Семейство Windows NT (2k, XP и далее) не основаны на MS-DOS и включают интерпретатор cmd.exe, который частично совместим с COMMAND.COM. Некоторые старые возможности COMMAND.COM в нём недоступны, однако вместо них появились новые. COMMAND.COM включается в NT-подобные системы для обеспечения лучшей обратной совместимости.

Существуют и другие командные интерпретаторы, разработанные сторонними компаниями и предоставляющие расширенный синтаксис команд для пакетного программирования — например, 4DOS (англ.).

Также существуют компиляторы пакетных файлов (например, Bat To Exe Converter), преобразующие пакетные файлы в самостоятельные исполнимые программы.

Применение

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

Вирусы и программы-шутки могут быть написаны в виде пакетного файла, известны также генераторы вирусов, являющиеся пакетными файлами.

Содержание

Пакетные файлы поддерживают операторы if, goto и for (в системах семейства Windows NT его возможности существенно расширены), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).

Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (файлов .EXE либо любых других исполнимых модулей).

Пример

Пример пакетного файла, вычисляющего выражения:

:start
@echo off
cls
title Калькулятор
color 71
echo Введите выражение:
set /p Exp=
set /a Result=%Exp%
cls
echo Вычислено
echo Ваше выражение:%Exp%
echo Результат:%Result%
echo.
echo Нажмите любую клавишу . . .
pause > nul
goto start
  1. Метка, создающая цикличность программы.
  2. Выключение «эха» (вывода выполняющихся строк на экран).
  3. Очистка экрана.
  4. Изменение заголовка окна Windows на строку «Калькулятор».
  5. Изменение цвета шрифта и фона (тёмно-синий на светло-сером).
  6. Вывод строки «Введите выражение».
  7. Создание переменной Exp для хранения ввода пользователя.
  8. Вычисление результата выражения и помещение его в переменную Result.
  9. Очистка экрана.
  10. Вывод строки «Вычислено».
  11. Вывод строки «Ваше выражение» и значения переменной Exp.
  12. Вывод строки «Результат» и значения переменной Result.
  13. Остановка выполнения кода до нажатия любой клавиши.
  14. Переход на метку start, выполнение кода начнётся со следующей после метки команды.

См. также

Напишите отзыв о статье "Пакетный файл"

Ссылки

  • [www.windowsfaq.ru/content/category/3/7/45 Пакетные (batch, bat) файлы] // WindowsFAQ.ru
  • Алексей Александров. [rsdn.org/article/winshell/batanyca.xml Урок bat-аники] // RSDN Magazine. — 2005. — 27 октября (№ 2).
  • Билл Стюарт. [www.osp.ru/win2000/2006/08/3829295 10 советов по использованию сценариев] // Windows IT Pro/RE. — 2006. — № 8.


Отрывок, характеризующий Пакетный файл

Девушки, лакеи, ключница, няня, повар, кучера, форейторы, поваренки стояли у ворот, глядя на раненых.
Наташа, накинув белый носовой платок на волосы и придерживая его обеими руками за кончики, вышла на улицу.
Бывшая ключница, старушка Мавра Кузминишна, отделилась от толпы, стоявшей у ворот, и, подойдя к телеге, на которой была рогожная кибиточка, разговаривала с лежавшим в этой телеге молодым бледным офицером. Наташа подвинулась на несколько шагов и робко остановилась, продолжая придерживать свой платок и слушая то, что говорила ключница.
– Что ж, у вас, значит, никого и нет в Москве? – говорила Мавра Кузминишна. – Вам бы покойнее где на квартире… Вот бы хоть к нам. Господа уезжают.
– Не знаю, позволят ли, – слабым голосом сказал офицер. – Вон начальник… спросите, – и он указал на толстого майора, который возвращался назад по улице по ряду телег.
Наташа испуганными глазами заглянула в лицо раненого офицера и тотчас же пошла навстречу майору.
– Можно раненым у нас в доме остановиться? – спросила она.
Майор с улыбкой приложил руку к козырьку.
– Кого вам угодно, мамзель? – сказал он, суживая глаза и улыбаясь.
Наташа спокойно повторила свой вопрос, и лицо и вся манера ее, несмотря на то, что она продолжала держать свой платок за кончики, были так серьезны, что майор перестал улыбаться и, сначала задумавшись, как бы спрашивая себя, в какой степени это можно, ответил ей утвердительно.
– О, да, отчего ж, можно, – сказал он.
Наташа слегка наклонила голову и быстрыми шагами вернулась к Мавре Кузминишне, стоявшей над офицером и с жалобным участием разговаривавшей с ним.
– Можно, он сказал, можно! – шепотом сказала Наташа.
Офицер в кибиточке завернул во двор Ростовых, и десятки телег с ранеными стали, по приглашениям городских жителей, заворачивать в дворы и подъезжать к подъездам домов Поварской улицы. Наташе, видимо, поправились эти, вне обычных условий жизни, отношения с новыми людьми. Она вместе с Маврой Кузминишной старалась заворотить на свой двор как можно больше раненых.
– Надо все таки папаше доложить, – сказала Мавра Кузминишна.
– Ничего, ничего, разве не все равно! На один день мы в гостиную перейдем. Можно всю нашу половину им отдать.
– Ну, уж вы, барышня, придумаете! Да хоть и в флигеля, в холостую, к нянюшке, и то спросить надо.
– Ну, я спрошу.
Наташа побежала в дом и на цыпочках вошла в полуотворенную дверь диванной, из которой пахло уксусом и гофманскими каплями.
– Вы спите, мама?
– Ах, какой сон! – сказала, пробуждаясь, только что задремавшая графиня.
– Мама, голубчик, – сказала Наташа, становясь на колени перед матерью и близко приставляя свое лицо к ее лицу. – Виновата, простите, никогда не буду, я вас разбудила. Меня Мавра Кузминишна послала, тут раненых привезли, офицеров, позволите? А им некуда деваться; я знаю, что вы позволите… – говорила она быстро, не переводя духа.
– Какие офицеры? Кого привезли? Ничего не понимаю, – сказала графиня.
Наташа засмеялась, графиня тоже слабо улыбалась.
– Я знала, что вы позволите… так я так и скажу. – И Наташа, поцеловав мать, встала и пошла к двери.
В зале она встретила отца, с дурными известиями возвратившегося домой.
– Досиделись мы! – с невольной досадой сказал граф. – И клуб закрыт, и полиция выходит.
– Папа, ничего, что я раненых пригласила в дом? – сказала ему Наташа.
– Разумеется, ничего, – рассеянно сказал граф. – Не в том дело, а теперь прошу, чтобы пустяками не заниматься, а помогать укладывать и ехать, ехать, ехать завтра… – И граф передал дворецкому и людям то же приказание. За обедом вернувшийся Петя рассказывал свои новости.
Он говорил, что нынче народ разбирал оружие в Кремле, что в афише Растопчина хотя и сказано, что он клич кликнет дня за два, но что уж сделано распоряжение наверное о том, чтобы завтра весь народ шел на Три Горы с оружием, и что там будет большое сражение.
Графиня с робким ужасом посматривала на веселое, разгоряченное лицо своего сына в то время, как он говорил это. Она знала, что ежели она скажет слово о том, что она просит Петю не ходить на это сражение (она знала, что он радуется этому предстоящему сражению), то он скажет что нибудь о мужчинах, о чести, об отечестве, – что нибудь такое бессмысленное, мужское, упрямое, против чего нельзя возражать, и дело будет испорчено, и поэтому, надеясь устроить так, чтобы уехать до этого и взять с собой Петю, как защитника и покровителя, она ничего не сказала Пете, а после обеда призвала графа и со слезами умоляла его увезти ее скорее, в эту же ночь, если возможно. С женской, невольной хитростью любви, она, до сих пор выказывавшая совершенное бесстрашие, говорила, что она умрет от страха, ежели не уедут нынче ночью. Она, не притворяясь, боялась теперь всего.