Здравствуйте.
C удивлением обнаружил, что в российской Википедии нет статьи "пакетный файл". Решил исправить сие и написал статью. Точнее не написал, а перевел с английского, но не 100% по тексту. Чуть-чуть от себя добавил, чуть-чуть переставил предложения ну и т.д. Однако технический английский мой не блестящ, поэтому прошу ознакомиться, указать на косяки, некорректные термины и вообще, сказать насколько статья адекватна
Также ожидаю любых ваших предложений по добавлению/удалению той или иной инфы. Спасибо
[more]Пакетный файл
Пакетный файл (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.
Также имеются несколько различных компиляторов пакетных файлов,
превращающие пакетные файлы в исполняемые программы. Качество компиляции у
этих продуктов разнится весьма широко.
Пример
Пример простого пакетного файла
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
[/more]