Пакетный файл: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Нет описания правки Метки: с мобильного устройства из мобильной версии |
|||
(не показано 45 промежуточных версий 36 участников) | |||
Строка 3: | Строка 3: | ||
| genre = [[Скрипт]]овый [[язык программирования]] |
| genre = [[Скрипт]]овый [[язык программирования]] |
||
}} |
}} |
||
'''Пакетный файл''' ({{lang-en|batch file}}) — [[текстовый файл]] в [[MS-DOS]], [[OS/2 |
'''Пакетный файл''' ({{lang-en|batch file}}) — [[текстовый файл]] в [[MS-DOS]], [[OS/2]] или [[Windows]], содержащий последовательность команд, предназначенных для исполнения [[Оболочка операционной системы#Командный интерпретатор|командным интерпретатором]]. После запуска пакетного файла программа-интерпретатор (как правило, [[COMMAND.COM]] или [[cmd.exe]]) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки ([[shell script]]) в [[Unix-подобная операционная система|Unix-подобных операционных системах]]. |
||
Пакетные файлы в [[DOS]] имеют расширение <code>.BAT |
Пакетные файлы в [[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| |
Семейство [[Windows NT]] ([[Windows 2000|2000]], [[Windows XP|XP]] и далее) не основаны на MS-DOS и включают интерпретатор [[cmd.exe]], который частично совместим с COMMAND.COM. Некоторые старые возможности COMMAND.COM в нём недоступны, однако вместо них появились новые. COMMAND.COM включается в NT-подобные системы для обеспечения лучшей обратной совместимости. |
||
Существуют и другие командные интерпретаторы, разработанные сторонними компаниями и предоставляющие расширенный синтаксис команд для пакетного программирования — например, |
Существуют и другие командные интерпретаторы, разработанные сторонними компаниями и предоставляющие расширенный синтаксис команд для пакетного программирования — например, [[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"> |
||
⚫ | |||
@echo off |
@echo off |
||
chcp 1251 |
|||
:: если появляются нечитаемые символы, замените 1251 на 65001 |
|||
cls |
cls |
||
title Калькулятор |
title Калькулятор |
||
color 71 |
color 71 |
||
:: если захотите поменять цвет, запустите cmd и напишите color 111 (появится справка) |
|||
⚫ | |||
echo Введите выражение: |
echo Введите выражение: |
||
set /p |
set /p exp= |
||
set /a |
set /a result="%exp%" |
||
cls |
cls |
||
echo Вычислено |
echo Вычислено |
||
echo Ваше выражение:% |
echo Ваше выражение:%exp% |
||
echo Результат:% |
echo Результат:%result% |
||
echo. |
echo. |
||
⚫ | |||
echo Нажмите любую клавишу . . . |
|||
cls |
|||
⚫ | |||
goto start |
goto start |
||
</source> |
</source> |
||
| |
| |
||
⚫ | |||
# Метка, создающая цикличность программы. |
|||
# Смена текущей кодировки на "кириллицу" |
|||
⚫ | |||
# Очистка экрана. |
# Очистка экрана. |
||
# Изменение заголовка окна Windows на строку «Калькулятор». |
# Изменение заголовка окна Windows на строку «Калькулятор». |
||
# Изменение цвета |
# Изменение цвета текста и фона (тёмно-синий на светло-сером). |
||
#Создание метки. |
|||
# Вывод строки «Введите выражение». |
# Вывод строки «Введите выражение». |
||
# Создание переменной <code> |
# Создание переменной <code>exp</code> для хранения ввода пользователя. |
||
# Вычисление результата выражения и помещение его в переменную <code> |
# Вычисление результата выражения и помещение его в переменную <code>result</code>. |
||
# Очистка экрана. |
# Очистка экрана. |
||
# Вывод строки «Вычислено». |
# Вывод строки «Вычислено». |
||
# Вывод строки «Ваше выражение» и значения переменной <code> |
# Вывод строки «Ваше выражение» и значения переменной <code>exp</code>. |
||
# Вывод строки «Результат» и значения переменной <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}} |
||
[[Категория:Форматы файлов]] |
[[Категория:Форматы файлов]] |
||
⚫ | |||
[[Категория:Скриптовые языки]] |
[[Категория:Скриптовые языки]] |
||
⚫ |
Текущая версия от 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
|
|
См. также
[править | править код]Примечания
[править | править код]Ссылки
[править | править код]- Пакетные (batch, bat) файлы // WindowsFAQ.ru
- Алексей Александров. Урок bat-аники // RSDN Magazine. — 2005. — 27 октября (№ 2).
- Билл Стюарт. 10 советов по использованию сценариев // Windows IT Pro/RE. — 2006. — № 8.
Для улучшения этой статьи желательно:
|
В другом языковом разделе есть более полная статья Batch file (англ.). |