Пакетный файл: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Добавил пункты
Строка 56: Строка 56:
# Изменение заголовка окна Windows на строку «Калькулятор».
# Изменение заголовка окна Windows на строку «Калькулятор».
# Изменение цвета текста и фона (тёмно-синий на светло-сером).
# Изменение цвета текста и фона (тёмно-синий на светло-сером).
#Создание метки
# Вывод строки «Введите выражение».
# Вывод строки «Введите выражение».
# Создание переменной <code>exp</code> для хранения ввода пользователя.
# Создание переменной <code>exp</code> для хранения ввода пользователя.
Строка 63: Строка 64:
# Вывод строки «Ваше выражение» и значения переменной <code>exp</code>.
# Вывод строки «Ваше выражение» и значения переменной <code>exp</code>.
# Вывод строки «Результат» и значения переменной <code>result</code>.
# Вывод строки «Результат» и значения переменной <code>result</code>.
#Вывод ?
# Остановка выполнения кода до нажатия любой клавиши.
# Остановка выполнения кода до нажатия любой клавиши.
# Очистка экрана
# Очистка экрана

Версия от 12:58, 28 сентября 2018

Пакетный файл
Расширение .bat, .cmd, .btm или .vbs
MIME-тип application/x-bat[1]
Тип формата Скриптовый язык программирования

Пакетный файл (англ. 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), преобразующие пакетные файлы в самостоятельные исполнимые программы.

Применение

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

Вирусы и программы-шутки могут быть написаны в виде пакетного файла, известны также генераторы вирусов, являющиеся пакетными файлами(Virra 1.0, BADtch R.A.T. 0.4, и другие).

Содержание

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

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

Пример

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

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

См. также

Ссылки

  1. https://gitlab.freedesktop.org/xdg/shared-mime-info/-/blob/2.3/data/freedesktop.org.xml.in#L3231-3238