Какое расширение имеют командные файлы

Обновлено: 07.07.2024

Пакетный файл представляет собой файл сценария в DOS , OS / 2 и Microsoft Windows . Он состоит из серии команд, которые должны выполняться интерпретатором командной строки , хранящихся в текстовом файле. Пакетный файл может содержать любую команду интерпретатор принимает в интерактивном режиме и использование конструкций , которые позволяют условные переходы и циклы в пакетном файле, такие , как IF , FOR и GOTO этикетки . Термин «пакет» происходит от пакетной обработки , что означает «неинтерактивное выполнение», хотя пакетный файл может не обрабатывать пакет из нескольких данных.

Расширение имени файла .bat используется в DOS и Windows. Windows NT и OS / 2 также добавили .cmd . Пакетные файлы для других сред могут иметь другие расширения, например .btm в оболочках , связанных с 4DOS , 4OS2 и 4NT .

Подробная обработка командных файлов значительно изменилась между версиями. Некоторые сведения в этой статье применимы ко всем пакетным файлам, в то время как другие сведения относятся только к определенным версиям.

СОДЕРЖАНИЕ

Варианты

В DOS командный файл можно запустить из интерфейса командной строки , набрав его имя, затем любые требуемые параметры и нажав ↵ Enter клавишу. При загрузке DOS файл AUTOEXEC.BAT , если он присутствует, выполняется автоматически, поэтому любые команды, которые необходимо выполнить для настройки среды DOS, могут быть помещены в этот файл. Пользователи компьютеров должны иметь файл AUTOEXEC.BAT для установки системной даты и времени, инициализации среды DOS, загрузки любых резидентных программ или драйверов устройств или инициализации сетевых подключений и назначений.

Ранние окна

OS / 2

Windows NT

Microsoft выпустила версию cmd.exe для Windows 9x и ME под названием WIN95CMD, чтобы пользователи старых версий Windows могли использовать определенные командные файлы в стиле cmd.exe.

Расширения имени файла

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

Примеры

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

Чтобы выполнить файл, он должен быть сохранен с суффиксом расширения имени файла .bat (или .cmd для операционных систем типа Windows NT) в текстовом формате, обычно создаваемом с помощью текстового редактора, такого как Microsoft Notepad, или текстового процессора, работающего в обычный текстовый режим.

При выполнении отображается следующее:

Объяснение

Интерпретатор выполняет каждую строку по очереди, начиная с первой. @ Символ в начале каждой строки предотвращает приглашение отображать эту команду , как она выполняется. Команда ECHO OFF отключает приглашение навсегда или до тех пор, пока оно не будет включено снова. Комбинация @ECHO OFF часто включает в себя первую строку командного файла, предотвращающую отображение каких-либо команд. Затем выполняется следующая строка и ECHO Hello World! выводится команда Hello World! . Выполняется следующая строка, и PAUSE команда отображает Press any key to continue . . . и приостанавливает выполнение скрипта. После нажатия клавиши сценарий завершается, так как команд больше нет. В Windows, если сценарий выполняется из уже запущенного окна командной строки , окно остается открытым в приглашении, как в MS-DOS; в противном случае окно закрывается по завершении.

Ограничения и исключения

Нулевые значения в переменных

Расширения переменных подставляются в команду текстуально, и, таким образом, переменные, которые ничего не содержат, просто исчезают из синтаксиса, а переменные, содержащие пробелы, превращаются в несколько токенов. Это может привести к синтаксическим ошибкам или ошибкам.

Например, если% foo% пуст, этот оператор:

разбирается как ошибочная конструкция:

Аналогично, если %foo% содержит abc def , то возникает другая синтаксическая ошибка:

Обычный способ предотвратить эту проблему - заключить расширения переменных в кавычки, чтобы пустая переменная преобразовывалась в допустимое выражение IF ""=="bar" вместо недопустимого IF ==bar . Текст, который сравнивается с переменной, также должен быть заключен в кавычки, потому что кавычки не являются специальным ограничивающим синтаксисом; эти персонажи представляют себя.

Задержка! ПЕРЕМЕННАЯ! расширение, доступное в Windows 2000 и более поздних версиях, может использоваться, чтобы избежать этих синтаксических ошибок. В этом случае пустые или многословные переменные не ошибаются синтаксически, потому что значение расширяется после анализа команды IF:

Еще одно отличие Windows 2000 или выше заключается в том, что пустая переменная (неопределенная) не заменяется. Как описано в предыдущих примерах, предыдущее поведение пакетного интерпретатора привело бы к пустой строке. Пример:

Пакетные интерпретаторы до Windows 2000 отображали результат MyVar is not defined .

Кавычки и пробелы в переданных строках

В отличие от процессов Unix / POSIX, которые получают свои аргументы командной строки, уже разделенные оболочкой на массив строк, процесс Windows получает всю командную строку как одну строку через функцию GetCommandLine API. В результате каждое приложение Windows может реализовать свой собственный синтаксический анализатор для разделения всей командной строки на аргументы. Многие приложения и инструменты командной строки разработали для этого собственный синтаксис, поэтому не существует единого соглашения о заключении в кавычки или экранировании метасимволов в командной строке Windows.

  • Для некоторых команд пробелы рассматриваются как разделители, разделяющие аргументы, если эти пробелы не заключены в кавычки. Существуют различные соглашения о том, как кавычки могут быть переданы приложению:
    • Широко используемое соглашение реализуется синтаксическим анализатором командной строки, встроенным в библиотеку времени выполнения Microsoft Visual C ++ в функции CommandLineToArgvW . Он использует соглашение, согласно которому 2 n обратных косых черт, за которыми следует кавычка ("), создают n обратных косых черт, за которыми следует начало / конец кавычки, тогда как (2 n ) +1 обратные косые черты, за которыми следует кавычка, снова создают n обратных косых черт, за которыми следует литерал кавычек. Это же соглашение является частью спецификации .NET Framework .
      • Недокументированный аспект заключается в том, что "", встречающееся в середине строки в кавычках, создает одинарную кавычку. (Изменение CRT в 2008 году [msvcr90] изменило эту недокументированную обработку кавычек.) Это полезно для вставки кавычек в аргумент без повторного включения интерпретации метасимволов cmd, таких как | , & и > . (cmd не распознает обычное \ " как экранирование цитаты. Он повторно включает эти специальные значения при просмотре цитаты, думая, что цитата закончилась.)

      Если строка содержит кавычки и должна быть вставлена ​​в другую строку текста, которая также должна быть заключена в кавычки, требуется особое внимание к механизму цитирования:

      В Windows 2000 и более поздних версиях решение состоит в замене каждого символа кавычки в значении серией из трех символов кавычек:

      Экранированные символы в строках

      Некоторые символы, например, вертикальная | черта ( ), имеют в командной строке особое значение. Они не могут быть напечатаны как текст с помощью команды ECHO, если не экранированы с помощью символа вставки ^:

      Однако экранирование не работает должным образом при вставке экранированного символа в переменную среды. Переменная заканчивается тем, что содержит команду live pipe, когда ее просто выводят эхом. Для отображения символа как текста в переменной необходимо экранировать как саму каретку, так и экранированный символ:

      Задержка ! ПЕРЕМЕННАЯ! расширение доступно CMD /V:ON или SETLOCAL ENABLEDELAYEDEXPANSION в Windows 2000 , а затем может быть использовано , чтобы показать специальные символы , хранящиеся в переменных окружении , так как значение переменного расширяются после того, как команда была разобрана:

      Сон или задержка по сценарию

      До появления команды TIMEOUT в Windows Vista не было простого способа реализовать временную паузу, поскольку команда PAUSE приостанавливает выполнение сценария на неопределенный срок, пока не будет нажата какая-либо клавиша.

      Вывод текста с вырезанными CR / LF

      Обычно ко всему печатному тексту автоматически добавляются управляющие символы для возврата каретки (CR) и перевода строки (LF) в конец каждой строки.

      Не имеет значения, используют ли две команды echo одну и ту же командную строку; коды CR / LF вставляются, чтобы разбить вывод на отдельные строки:

      Это можно использовать для вывода данных в текстовый файл без добавления CR / LF в конец:

      Тем не менее, нет способа вставить этот разделенный вывод приглашения CR / LF непосредственно в переменную среды.

      Установка рабочего каталога Uniform Naming Convention (UNC) с помощью ярлыка

      Невозможно иметь командную строку, в которой в качестве текущего рабочего каталога используется путь UNC ; например \\server\share\directory\

      Командная строка требует использования букв дисков для назначения рабочего каталога, что затрудняет выполнение сложных пакетных файлов, хранящихся на общем UNC-ресурсе сервера. Хотя командный файл можно запустить из пути к файлу UNC, рабочим каталогом по умолчанию является C:\Windows\System32\ .

      В Windows 2000 и более поздних версиях можно использовать команду PUSHD и POPD с расширениями команд.

      Если по умолчанию не включено, расширения команд можно временно включить с помощью /E:ON переключателя интерпретатора команд.

      Таким образом, чтобы запустить пакетный файл на общем ресурсе UNC, назначить временную букву диска для общего ресурса UNC и использовать общий ресурс UNC в качестве рабочего каталога пакетного файла, можно создать ярлык Windows, который выглядит следующим образом:

      • Цель: %COMSPEC% /E:ON /C "PUSHD """ \\SERVER\SHARE\DIR1\DIR2\ """ & BATCHFILE.BAT & POPD"

      Атрибут рабочего каталога этого ярлыка игнорируется.

      Это также решает проблему, связанную с контролем учетных записей пользователей (UAC) в Windows Vista и новее. Когда администратор входит в систему и включен UAC, и они пытаются запустить пакетный файл от имени администратора с буквы сетевого диска, используя контекстное меню файла, щелкнув правой кнопкой мыши, операция неожиданно завершится ошибкой. Это связано с тем, что контекст привилегированной учетной записи UAC с повышенными правами не имеет назначений букв сетевых дисков, и невозможно назначить буквы дисков для контекста с повышенными правами через оболочку Explorer или сценарии входа в систему. Однако, создав ярлык для командного файла с использованием указанной выше конструкции PUSHD / POPD и используя ярлык для запуска командного файла от имени администратора, временная буква диска будет создана и удалена в контексте учетной записи с повышенными правами, и командный файл будет работать правильно. .

      Следующий синтаксис правильно расширяется до пути к текущему пакетному сценарию.

      Пути по умолчанию UNC отключены по умолчанию, поскольку они использовались для сбоя старых программ.

      Значение реестра Dword DisableUNCCheck в HKEY_CURRENT_USER\Software\Microsoft\Command Processor позволяет каталог по умолчанию будет UNC. CD команда откажется от изменения, но поместит UNC-путь в каталог по умолчанию в ярлыке для Cmd или с помощью команды «Пуск». ( акция для администраторов). start "" /d \\127.0.0.1\C$ "cmd /k" C$

      Набор символов

      В пакетных файлах используется набор символов OEM, определенный компьютером, например, кодовая страница 437 . Их части, отличные от ASCII, несовместимы с наборами символов Unicode или Windows, которые иначе используются в Windows, поэтому необходимо соблюдать осторожность. Неанглийские имена файлов работают только в том случае, если они введены через редактор, совместимый с набором символов DOS. Имена файлов с символами вне этого набора не работают в пакетных файлах.

      Чтобы получить вывод в Юникоде в файловые каналы из внутренней команды, такой как dir , можно использовать cmd /U команду. Например, cmd /U /C dir > files.txt создает файл, содержащий список каталогов с правильными символами Windows в кодировке UTF-16 LE.

      Пакетные вирусы и вредоносное ПО

      Как и любой другой язык программирования, командные файлы могут использоваться злонамеренно. Простые трояны и форк-бомбы легко создаются, а пакетные файлы могут выполнять некоторую форму отравления DNS путем изменения файла hosts . Возможны пакетные вирусы, которые также могут распространяться через USB-накопители с помощью функции автозапуска Windows .

      Следующая команда в пакетном файле удалит все данные в текущем каталоге (папке) - без предварительного запроса подтверждения:

      Эти три команды представляют собой простую форк-бомбу, которая будет непрерывно копировать себя, истощая доступные системные ресурсы, замедляя или ломая систему:

      Другие языки сценариев Windows

      Командный процессор cmd.exe, который интерпретирует файлы .cmd, поддерживается во всех 32- и 64-разрядных версиях Windows, по крайней мере, до Windows 10. COMMAND.EXE, который интерпретирует файлы .BAT, поддерживался во всех 16- и 32-разрядных версиях. битовые версии как минимум до Windows 10.

      Для Windows доступны другие, более поздние и более мощные языки сценариев. Однако они требуют установки интерпретатора языка сценариев, прежде чем их можно будет использовать:

      A командного файла - это файл сценария в DOS , OS / 2 и Microsoft Windows . Он состоит из серии команд , которые должны выполняться интерпретатором командной строки , сохраненных в текстовом файле . Пакетный файл может содержать любую команду, которую интерпретатор принимает в интерактивном режиме, и использовать конструкции, которые разрешают условное ветвление и цикл внутри пакетного файла, такие как IF , FOR и GOTO метки. . Термин «пакетный» происходит от пакетная обработка , что означает «неинтерактивное выполнение», хотя пакетный файл может не обрабатывать пакет из нескольких данных.

      Расширение имени файла .bat используется в DOS и Windows. Windows NT и OS / 2 также добавили .cmd . Пакетные файлы для других сред могут иметь другие расширения, например, .btm в оболочках, связанных с 4DOS , 4OS2 и 4NT .

      Детальная обработка пакетных файлов значительно изменилась между версиями. Некоторые сведения в этой статье применимы ко всем пакетным файлам, в то время как другие сведения относятся только к определенным версиям.

      Содержание

      Варианты

      В DOS командный файл можно запустить из интерфейс командной строки , введя его имя, затем любые требуемые параметры и нажав клавишу ↵ Enter . При загрузке DOS файл AUTOEXEC.BAT , если он присутствует, выполняется автоматически, поэтому в этот файл можно поместить любые команды, которые необходимо выполнить для настройки среды DOS. Пользователи компьютеров должны иметь файл AUTOEXEC.BAT для установки системной даты и времени, инициализации среды DOS, загрузки любых резидентных программ или драйверов устройств или инициализации сетевых подключений и назначений.

      Ранняя версия Windows

      OS / 2

      Windows NT

      Microsoft выпустила версию cmd.exe для Windows 9x и ME под названием WIN95CMD, чтобы пользователи старых версий Windows могли использовать определенные командные файлы в стиле cmd.exe.

      Расширения имен файлов

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

      COMMAND.COM и cmd.exe поддерживают количество специальных переменных (от %0 , %1 до % 9 ) для ссылки на путь и имя пакетного задания и первые девять параметров вызова из пакетного задания, см. также SHIFT . Несуществующие параметры заменяются строкой нулевой длины. Их можно использовать аналогично переменным среды , но они не хранятся в среде. Microsoft и IBM называют эти переменные параметрами замены или заменяемыми параметрами, тогда как Digital Research, Novell и Caldera ввели для них термин "переменные замены". JP Software называет их параметрами пакетного файла.

      Примеры

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

      Чтобы запустить файл, он должен быть сохранен с расширением .bat (или .cmd для операционных систем типа Windows NT) в текстовом формате, обычно создаваемом с помощью текстового редактора, такого как Microsoft Notepad или текстовый процессор , работающий в текстовом режиме.

      При выполнении отображается следующее:

      Объяснение

      Интерпретатор выполняет каждую строку по очереди, начиная с первой. Символ @ в начале любой строки предотвращает отображение этой команды в подсказке при ее выполнении. Команда ECHO OFF отключает подсказку навсегда или до тех пор, пока она не будет включена снова. Комбинированный @ECHO OFF часто, как и здесь, является первой строкой командного файла, предотвращающей отображение любых команд, включая саму себя. Затем выполняется следующая строка, и команда ECHO Hello World! выводит Hello World! . Выполняется следующая строка, и команда PAUSE отображает Нажмите любую клавишу, чтобы продолжить. . . и приостанавливает выполнение скрипта. После нажатия клавиши сценарий завершается, так как команд больше нет. В Windows, если сценарий выполняется из уже запущенного окна командной строки , окно остается открытым в командной строке, как в MS-DOS; в противном случае окно закрывается по завершении.

      Ограничения и исключения

      Нулевые значения в переменных

      Расширения переменных подставляются в команду текстуально, и, таким образом, переменные, которые не содержат ничего, просто исчезают из синтаксиса, а переменные, содержащие пробелы превращаются в несколько токенов. Это может привести к синтаксическим ошибкам или ошибкам.

      Например, если% foo% пуст, этот оператор:

      анализируется как ошибочная конструкция:

      Аналогично, если % foo% содержит abc def , то возникает другая синтаксическая ошибка:

      Обычный способ предотвращения эта проблема заключается в заключении расширений переменных в кавычки, чтобы пустая переменная расширялась до допустимого выражения IF "" == "bar" вместо недопустимого IF == bar . Текст, который сравнивается с переменной, также должен быть заключен в кавычки, потому что кавычки не являются специальным ограничивающим синтаксисом; эти персонажи представляют себя.

      Задержка! VARIABLE! Расширение, доступное в Windows 2000 и более поздних версиях, может использоваться, чтобы избежать этих синтаксических ошибок. В этом случае пустые или многословные переменные не ошибаются синтаксически, потому что значение расширяется после анализа команды IF:

      Еще одно отличие в Windows 2000 или выше заключается в том, что пустая переменная (неопределенная) не заменяется. Как описано в предыдущих примерах, предыдущее поведение пакетного интерпретатора привело бы к пустой строке. Пример:

      Пакетные интерпретаторы до Windows 2000 отображали результат MyVar не определен .

      Кавычки и пробелы в переданных строках

      В отличие от процессов Unix / POSIX, которые получают свои аргументы командной строки, уже разделенные оболочкой на массив строк, процесс Windows получает всю командную строку как одну строку через функцию API GetCommandLine . В результате каждое приложение Windows может реализовать свой собственный синтаксический анализатор для разделения всей командной строки на аргументы. Многие приложения и инструменты командной строки разработали для этого собственный синтаксис, поэтому не существует единого соглашения о заключении в кавычки или экранировании метасимволов в командной строке Windows.

      • Для некоторых команд пробелы рассматриваются как разделители, разделяющие аргументы, если эти пробелы не заключены в кавычки. Существуют различные соглашения о том, как кавычки могут быть переданы приложению:
        • Широко используемое соглашение реализуется с помощью синтаксического анализатора командной строки, встроенного в библиотеку времени выполнения Microsoft Visual C ++ в CommandLineToArgvW . Он использует соглашение, согласно которому 2 n обратной косой черты, за которыми следует кавычка ("), создают n обратную косую черту, за которой следует начало / конец кавычки, тогда как (2 n ) Обратная косая черта +1, за которой следует кавычка, снова создает n обратных косых черт, за которыми следует литерал кавычек. Такое же соглашение является частью спецификации .NET Framework .
          • Недокументированный аспект заключается в том, что "" в середине строки в кавычках создает одинарную кавычку (изменение CRT в 2008 году [msvcr90] изменило эту недокументированную обработку кавычек.) Это полезно для вставки кавычек в аргумент без повторного включения интерпретации метасимволов cmd. например,
          • |,
          • & и
          • >. (cmd не распознает обычный
          • \ "как экранирование цитаты. Он повторно включает эти специальные значения при просмотре цитаты, думая, что цитата закончилась .)

          Если строка содержит кавычки и должна быть вставлена ​​в другую строку текста, которая также должна быть заключена в кавычки, особое внимание уделяется механизму цитирования. требуется:

          В Windows 2000 и более поздних версиях решение состоит в замене каждого вхождения символа кавычки в значении серией из трех символов кавычек:

          Экранированные символы в строках

          Однако экранирование не работает должным образом при вставке экранированного символа в переменную среды. Переменная заканчивается тем, что содержит команду live pipe, когда просто отображается эхом. Необходимо экранировать как саму каретку, так и экранированный символ для отображения символа в виде текста в переменной:

          Спящий режим или задержка сценария

          До тех пор, пока команда TIMEOUT не была представлена ​​в Windows Vista, не было простого способа реализовать временную паузу, поскольку команда PAUSE приостанавливает выполнение сценария на неопределенный срок, пока не будет нажата какая-либо клавиша.

          Вывод текста с вырезанными CR / LF

          Обычно весь напечатанный текст автоматически содержит управляющие символы для возврата каретки (CR) и перевода строки (LF) добавляется в конец каждой строки.

          Не имеет значения, используют ли две команды echo одну и ту же командную строку; коды CR / LF вставляются для разбивки вывода на отдельные строки:

          Это можно использовать для вывода данных в текстовый файл без добавления CR / LF в конец:

          Однако нет способа вставить этот удаленный вывод приглашения CR / LF непосредственно в переменную среды.

          Установка рабочего каталога Uniform Naming Convention (UNC) с помощью ярлыка

          Невозможно иметь командную строку, которая использует UNC-путь в качестве текущего рабочего каталога ; например \\ server \ share \ directory \

          Командная строка требует использования букв дисков для назначения рабочего каталога, что затрудняет выполнение сложных пакетных файлов, хранящихся на общей UNC-папке сервера. Хотя командный файл может быть запущен из пути к файлу UNC, рабочий каталог по умолчанию - C: \ Windows \ System32 \ .

          . В Windows 2000 и более поздних версиях обходным путем является использование PUSHD и команда POPD с расширениями команд.

          Если они не включены по умолчанию, расширения команд можно временно включить с помощью переключателя / E: ON для интерпретатора команд.

          Итак, чтобы запустить пакетный файл на общем ресурсе UNC, назначить временную букву диска общему ресурсу UNC и использовать общий ресурс UNC в качестве рабочего каталога пакетного файла, можно создать ярлык Windows, который выглядит как это:

          • Цель: % COMSPEC% / E: ON / C "PUSHD" "" \\ SERVER \ SHARE \ DIR1 \ DIR2 \ "" "& BATCHFILE.BAT & POPD"

          Рабочий каталог атрибут этого ярлыка игнорируется.

          Это также решает проблему, связанную с контролем учетных записей пользователей (UAC) в Windows Vista и новее. Когда администратор вошел в систему и включен UAC, и они попытаются запустить командный файл от имени администратора с буквы сетевого диска, используя контекстное меню файла, щелкнув правой кнопкой мыши, операция неожиданно завершится ошибкой. Это связано с тем, что контексту привилегированной учетной записи UAC с повышенными привилегиями не назначены буквы сетевых дисков, и невозможно назначить буквы дисков для контекста с повышенными правами через оболочку Explorer или сценарии входа в систему. Однако, создав ярлык для командного файла с использованием указанной выше конструкции PUSHD / POPD и используя ярлык для запуска командного файла от имени администратора, будет создана временная буква диска и удален в контексте учетной записи с повышенными правами, и командный файл будет работать правильно.

          Следующий синтаксис правильно расширяется до пути к текущему пакетному сценарию.

          Пути по умолчанию UNC отключены по умолчанию, поскольку они использовались для аварийного завершения старых программ.

          Значение реестра Dword DisableUNCCheck в HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor позволяет использовать каталог по умолчанию в формате UNC. CD команда не будет изменять, но поместит UNC-путь в каталог по умолчанию в ярлыке для Cmd или с помощью команды Start. start "" / d \\ 127.0.0.1 \ C $ "cmd / k" ( C$ общий ресурс для администраторов).

          Набор символов

          В пакетных файлах используется набор символов OEM, определенный компьютером, например Кодовая страница 437 . Их части, не относящиеся к ASCII, несовместимы с наборами символов Unicode или Windows , которые иначе используются в Windows, поэтому необходимо соблюдать осторожность. Неанглийские имена файлов работают только при вводе через редактор, совместимый с набором символов DOS. Имена файлов с символами вне этого набора не работают в пакетных файлах.

          Чтобы получить вывод в Юникоде в файловые каналы из внутренней команды, такой как dir , можно использовать команду cmd / U . Например, cmd / U / C dir>files.txt создает файл, содержащий список каталогов с правильными символами Windows в кодировке UTF-16 LE.

          Пакетные вирусы и вредоносное ПО

          Как и любой другой язык программирования, пакетные файлы могут использоваться злонамеренно. Простые трояны и бомбы-вилки легко создаются, а пакетные файлы могут выполнять форму заражения DNS , изменяя файл hosts . Возможны пакетные вирусы, которые также могут распространяться через USB-флеш-накопители с использованием возможностей Windows Autorun.

          Следующая команда в пакетном файле удалит все данные в текущем каталоге (папке) - без предварительного запроса подтверждения:

          Эти три команды представляют собой простую fork bomb , которая будет непрерывно копировать себя, чтобы истощить доступную систему ресурсы, замедление или сбой системы:

          Другие языки сценариев Windows

          Командный процессор cmd.exe, который интерпретирует файлы .cmd, поддерживается во всех 32 - и 64-битные версии Windows как минимум до Windows 10. COMMAND.EXE, интерпретирующий файлы .BAT, поддерживался во всех 16- и 32-битных версиях как минимум до Windows 10.

          Там другие, более поздние и более мощные языки сценариев, доступные для Windows. Однако для их использования требуется установка интерпретатора языка сценариев:

          Часто многим приходилось слышать о командном файле. С его помощью многие «продвинутые» пользователи выполняют всевозможные автоматические задачи на компьютере. Что же такое командный файл и где его взять?


          Командный файл - это некий файл последовательных команд, которые Windows будет выполнять при его запуске. Командный файл, как правило, имеет расширение *.bat. Рассмотрим возможности командных файлов на простом примере – создадим командный файл, который будет очищать папку Temp от временных файлов в корне диска C.

          Папка Temp

          Все команды, которые можно использовать в командном файле должны соответствовать синтаксису командной строки. Справка Windows содержит подробное описание синтаксиса всех этих команд. Создать BAT файл можно с помощью обычного текстового редактора, такого как Блокнот. Открыв блокнот в нём нужно написать такую строку:

          Запись команды в блокнот

          После чего следует сохранить этот файл в любом удобном месте и изменить расширение с txt на bat.

          Изменение расширения txt на bat

          Эта команда будет производить удаление всех файлов в папке Temp.

          Ключ /S необходим для удаления файлов в подпапках, а ключ /Q – для отключения вывода подтверждения на удаление файлов.

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

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

          Содержание

          История

          Поддержка пакетных файлов имелась в MS-DOS с самого начала. Командные интерпретаторы этой системы (а затем и Windows) предлагают два режима работы: интерактивный (когда пользователь непосредственно вводит команды в командной строке и немедленно их исполняет) и пакетный (когда пользователь запускает предварительно записанную последовательность команд). Концепция обоих режимов была почерпнута из интерфейсов командной строки предшествующих ОС (таких как CP/M) и Unix-оболочек.

          Также, существуют компиляторы пакетных файлов (например, Bat To Exe Converter), преобразующие пакетные файлы в самостоятельные исполнимые программы.

          Применение

          Содержание

          Пример

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

          1. Выключение эха (вывода выполняющихся строк на экран).
          2. Метка, создающая цикличность программы.
          3. Очистка экрана.
          4. Изменение заголовка окна Windows на строку «Калькулятор».
          5. Изменение цвета шрифта и фона (тёмно-синий на светло-сером).
          6. Вывод строки «Введите уравнение».
          7. Создание переменной exp для хранения ввода пользователя.
          8. Вычисление результата выражения и помещение его в переменную result .
          9. Изменение заголовка окна на «Вычислено».
          10. Вывод строки «Ваше уравнение» и значения переменной exp .
          11. Вывод строки «Решение» и значения переменной result .
          12. Остановка выполнения кода до нажатия любой клавиши.
          13. Переход на метку begin, выполнение кода начнётся со следующей после метки команды.

          См. также

          Ссылки

          • Форматы файлов
          • Microsoft Windows
          • Скриптовые языки

          Wikimedia Foundation . 2010 .

          Полезное

          Смотреть что такое "Пакетный файл" в других словарях:

          Файл (компьютер) — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия

          Компьютерный файл — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия

          Командный файл — BAT Расширение файла: .bat, .cmd (только Windows NT) Тип формата: Скриптовый язык программирования Пакетный файл (англ. batch file) текстовый файл в OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным … Википедия

          Файлы — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия

          Дальнобойщики 2 (игра) — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей. У этого термина … Википедия

          Пакетные файлы — BAT Расширение файла: .bat, .cmd (только Windows NT) Тип формата: Скриптовый язык программирования Пакетный файл (англ. batch file) текстовый файл в OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным … Википедия

          Читайте также: