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

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
BAT
Расширение имени файла: .bat, .cmd (только Windows NT)
Тип формата: Скриптовый язык программирования


Пакетный файл (англ. 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 - оболочек, равно как и из других текстовых интерфейсов командной строки начала 80-х годов ХХ века, таких как CP/M. Коммандный интерпретатор в MS-DOS имеет название COMMAND.COM Эволюция этой ветви пакетного программирования прошла через различные версии MS-DOS к Windows 95, Windows 98 и, наконец, к Windows Me. Наиболее известным пакетным файлом в этих системах является AUTOEXEC.BAT, специальный пакетный файл, который исполняется во время загрузки операционной системы.

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

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

Также имеются несколько различных компиляторов пакетных файлов, превращающие пакетные файлы в исполняемые программы. Качество компиляции у этих продуктов разнится весьма широко.

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

Пакетные файлы весьма популярны для написания вирусов, особенно среди начинающих и непрофессиональных программистов. Это произошло благодаря чрезвычайной простоте их написания и тому факту, что пакетный файл может быть запущен на практически любой машине с установленной системой Windows. Несмотря на то, что некоторые "продвинутые" вирусописатели смеются над пакетными вирусами, они, тем не менее, могут быстро вызывать огромные негативные последствия (например, удаление содержимого всего жесткого диска возможно всего лишь одной командой)

Пример

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

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

См. также

autorun.inf
ini файлы

Ссылки

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net