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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Метки: с мобильного устройства из мобильной версии
 
(не показано 45 промежуточных версий 36 участников)
Строка 3: Строка 3:
| genre = [[Скрипт]]овый [[язык программирования]]
| genre = [[Скрипт]]овый [[язык программирования]]
}}
}}
'''Пакетный файл''' ({{lang-en|batch file}}) — [[текстовый файл]] в [[MS-DOS]], [[OS/2]] [[JAVA]] или [[Windows]], содержащий последовательность команд, предназначенных для исполнения [[Оболочка операционной системы#Командный интерпретатор|командным интерпретатором]]. После запуска пакетного файла программа-интерпретатор (как правило, [[COMMAND.COM]] или [[cmd.exe]] [[MiniComander]] читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки ([[shell script]]) в [[Unix-подобная операционная система|Unix-подобных операционных системах]].
'''Пакетный файл''' ({{lang-en|batch file}}) — [[текстовый файл]] в [[MS-DOS]], [[OS/2]] или [[Windows]], содержащий последовательность команд, предназначенных для исполнения [[Оболочка операционной системы#Командный интерпретатор|командным интерпретатором]]. После запуска пакетного файла программа-интерпретатор (как правило, [[COMMAND.COM]] или [[cmd.exe]]) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки ([[shell script]]) в [[Unix-подобная операционная система|Unix-подобных операционных системах]].


Пакетные файлы в [[DOS]] имеют расширение <code>.BAT .CMD</code>; для других операционных систем они могут иметь другие расширения — например, <code>.CMD</code> в Windows NT и OS/2 или <code>.BTM</code> в {{translation|:en:4DOS|4DOS}} или подобных оболочках.
Пакетные файлы в [[DOS]] имеют расширение <code>.BAT</code>; для других операционных систем они могут иметь другие расширения — например, <code>.CMD</code> в [[Windows NT]] и OS/2 или <code>.BTM</code> в [[4DOS]] или подобных оболочках.


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


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


Существуют и другие командные интерпретаторы, разработанные сторонними компаниями и предоставляющие расширенный синтаксис команд для пакетного программирования — например, {{translation|:en:4DOS|4DOS}}.
Существуют и другие командные интерпретаторы, разработанные сторонними компаниями и предоставляющие расширенный синтаксис команд для пакетного программирования — например, [[4DOS]].


Также существуют компиляторы пакетных файлов (например, Bat To Exe Converter), преобразующие пакетные файлы в самостоятельные [[Исполнимый модуль|исполнимые программы]].
Также существуют компиляторы пакетных файлов (например, Bat To Exe Converter), преобразующие пакетные файлы в самостоятельные [[Исполнимый модуль|исполнимые программы]].
Строка 21: Строка 21:
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, которые регулярно приходится совершать пользователю компьютера: например, копирование, перемещение, переименование, удаление файлов; работа с папками; архивация и т. п.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, которые регулярно приходится совершать пользователю компьютера: например, копирование, перемещение, переименование, удаление файлов; работа с папками; архивация и т. п.


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


== Содержание ==
== Содержание ==
Строка 29: Строка 29:


=== Пример ===
=== Пример ===
Пример пакетного файла, вычисляющего выражения:
Пример пакетного файла, вычисляющего выражения, введённые пользователем:
{| class="wikitable sortable mw-collapsible mw-collapsed"
{|
|+
|-valign="top"
|-valign="top"
|
|
<source lang="winbatch">
<source lang="winbatch" line="1">
:start
@echo off
@echo off
chcp 1251
:: если появляются нечитаемые символы, замените 1251 на 65001
cls
cls
title Калькулятор
title Калькулятор
color 71
color 71
:: если захотите поменять цвет, запустите cmd и напишите color 111 (появится справка)
:start
echo Введите выражение:
echo Введите выражение:
set /p Exp=
set /p exp=
set /a Result=%Exp%
set /a result="%exp%"
cls
cls
echo Вычислено
echo Вычислено
echo Ваше выражение:%Exp%
echo Ваше выражение:%exp%
echo Результат:%Result%
echo Результат:%result%
echo.
echo.
pause
echo Нажмите любую клавишу . . .
cls
pause > nul
goto start
goto start
</source>
</source>
|
|
# Выключение «эхо» (вывода выполняющихся строк на экран).
# Метка, создающая цикличность программы.
# Смена текущей кодировки на "кириллицу"
# Выключение «эха» (вывода выполняющихся строк на экран).
# Очистка экрана.
# Очистка экрана.
# Изменение заголовка окна Windows на строку «Калькулятор».
# Изменение заголовка окна Windows на строку «Калькулятор».
# Изменение цвета шрифта и фона (тёмно-синий на светло-сером).
# Изменение цвета текста и фона (тёмно-синий на светло-сером).
#Создание метки.
# Вывод строки «Введите выражение».
# Вывод строки «Введите выражение».
# Создание переменной <code>Exp</code> для хранения ввода пользователя.
# Создание переменной <code>exp</code> для хранения ввода пользователя.
# Вычисление результата выражения и помещение его в переменную <code>Result</code>.
# Вычисление результата выражения и помещение его в переменную <code>result</code>.
# Очистка экрана.
# Очистка экрана.
# Вывод строки «Вычислено».
# Вывод строки «Вычислено».
# Вывод строки «Ваше выражение» и значения переменной <code>Exp</code>.
# Вывод строки «Ваше выражение» и значения переменной <code>exp</code>.
# Вывод строки «Результат» и значения переменной <code>Result</code>.
# Вывод строки «Результат» и значения переменной <code>result</code>.
#Вывод пустой строки.
# Остановка выполнения кода до нажатия любой клавиши.
# Остановка выполнения кода до нажатия любой клавиши.
# Очистка экрана
# Переход на метку start, выполнение кода начнётся со следующей после метки команды.
# Переход на метку start, выполнение кода начнётся со следующей после метки команды.
# Для корректной работы "кириллицы" рекомендуется сохранять файл в кодировке ANSI.
|}
|}


Строка 73: Строка 81:
* [[.ini]]
* [[.ini]]
* [[Windows PowerShell]]
* [[Windows PowerShell]]

== Примечания ==
{{примечания}}


== Ссылки ==
== Ссылки ==
Строка 79: Строка 90:
* {{статья|автор=Билл Стюарт.|заглавие=10 советов по использованию сценариев|издание=Windows IT Pro/RE|номер=8|год=2006|ссылка=http://www.osp.ru/win2000/2006/08/3829295}}
* {{статья|автор=Билл Стюарт.|заглавие=10 советов по использованию сценариев|издание=Windows IT Pro/RE|номер=8|год=2006|ссылка=http://www.osp.ru/win2000/2006/08/3829295}}


{{rq|refless}}
{{rq|refless}}{{Перевести|en|Batch file}}


[[Категория:Форматы файлов]]
[[Категория:Форматы файлов]]
[[Категория:Microsoft Windows]]
[[Категория:Скриптовые языки]]
[[Категория:Скриптовые языки]]
[[Категория:Командная строка MS-DOS/Windows]]

Текущая версия от 09:53, 23 ноября 2024

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

Примечания

[править | править код]