Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Подобно языку управления заданиями (JCL), DCL и другим системам на мэйнфреймах и миникомпьютерах, были добавлены пакетные файлы для облегчения работы, необходимой для определенных регулярных задач, позволяя пользователю настроить сценарий для их автоматизации. При запуске командного файла программа оболочки (обычно COMMAND.COM или cmd.exe ) считывает файл и выполняет его команды, обычно построчно. [1] Unix-подобные операционные системы , такие как Linux , имеют похожий, но более гибкий тип файла, называемый сценарием оболочки . [2]

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

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

Варианты [ править ]

DOS [ править ]

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

Расширение имени файла .bat идентифицирует файл, содержащий команды, которые выполняются интерпретатором команд COMMAND.COM строка за строкой, как если бы это был список команд, введенных вручную, с некоторыми дополнительными командами, специфичными для пакетного файла, для основных функций программирования, включая GOTOкоманду для изменения потока выполнения строки.

Ранние Windows [ править ]

Microsoft Windows была представлена ​​в 1985 году как наложение на основе графического пользовательского интерфейса (GUI) в текстовых операционных системах и была разработана для работы в DOS. Для его запуска использовалась WINкоманда, которую можно было добавить в конец файла AUTOEXEC.BAT для автоматической загрузки Windows. В более ранних версиях можно было запустить файл типа .bat из Windows в приглашении MS-DOS. Windows 3.1x и более ранние версии , а также Windows 9x вызывали COMMAND.COM для запуска командных файлов.

OS / 2 [ править ]

IBM OS / 2 операционной системы поддерживается DOS-стиль пакетных файлов. Он также включал версию REXX , более продвинутого языка сценариев для пакетных файлов . IBM и Microsoft начали разработку этой системы, но во время ее создания разошлись после спора; В результате IBM ссылалась на свою консольную оболочку, подобную DOS, без упоминания Microsoft, называя ее просто DOS, хотя это, по-видимому, не имело никакого значения в отношении того, как работают командные файлы из COMMAND.COM.

Интерпретатор командных файлов OS / 2 также поддерживает команду EXTPROC. Пакетный файл передается в программу, указанную в файле EXTPROC, как файл данных. Именованная программа может быть файлом сценария; это похоже на #! механизм.

Windows NT [ править ]

В отличие от Windows 98 и более ранних версий, операционные системы семейства Windows NT не зависят от MS-DOS. Windows NT представила усовершенствованный 32-разрядный интерпретатор команд ( cmd.exe ), который может выполнять сценарии с расширением .CMD или .BAT. Cmd.exe добавил дополнительные команды и реализовал существующие несколько иначе, чтобы один и тот же командный файл (с другим расширением) мог по-разному работать с cmd.exe и COMMAND.COM. В большинстве случаев операция идентична, если несколько неподдерживаемых команд не используются. Расширения Cmd.exe для COMMAND.COM можно отключить для совместимости.

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

Начиная с Windows 8 cmd.exe является обычным интерпретатором команд для пакетных файлов; старый COMMAND.COM можно запускать также в 32-разрядных версиях Windows, способных запускать 16-разрядные программы. [nb 1]

Расширения имен файлов [ править ]

.летучая мышь
Первое расширение имени файла, используемое Microsoft для пакетных файлов. Это расширение работает с DOS и всеми версиями Windows под COMMAND.COM или cmd.exe, несмотря на то, что два интерпретатора команд по-разному выполняют командные файлы.
.cmd
Используется для пакетных файлов в семействе Windows NT и отправляется в cmd.exe для интерпретации. COMMAND.COM не распознает это расширение имени файла, поэтому сценарии cmd.exe по ошибке не выполняются в неправильной среде Windows. Кроме того, append, dpath, ftype, set, path, assocи promptкоманды, которые при выполнении из файла .bat, изменить значение errorlevelпеременной только при возникновении ошибки, в то время как изнутри CMD - файла, они будут влиять на код ошибки , даже при возврате без ошибки. [3] Он также используется IBM OS / 2 для пакетных файлов.
.btm
Расширение, используемое 4DOS , 4OS2 , 4NT и Take Command . Эти сценарии работают быстрее, особенно с более длинными, поскольку сценарий загружается полностью готовым к выполнению, а не построчно. [4]

Параметры пакетного файла [ править ]

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

Примеры [ править ]

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

@ ECHO OFF ECHO Привет, мир!ПАУЗА

Чтобы выполнить файл, он должен быть сохранен с суффиксом расширения имени файла .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% == bar ECHO равно

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

ЕСЛИ == бар ЭХО равно

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

ЕСЛИ abc def == bar ECHO Equal

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

ЕСЛИ  " % foo% " == "bar"  ECHO равно

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

ЕСЛИ  ! Фу! == bar ECHO Equal

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

C: \> установить  MyVar = C: \> echo  % MyVar %% MyVar%C: \> if  " % MyVar% " == ""  ( echo MyVar не определен )  else  ( echo MyVar равен % MyVar% ) MyVar равен% MyVar%

Пакетные интерпретаторы до 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 . [7]
      • Недокументированный аспект заключается в том, что "", встречающееся в середине строки в кавычках, дает одиночную кавычку. [7] (Изменение CRT в 2008 году [msvcr90] изменило эту недокументированную обработку кавычек. [8] ) Это полезно для вставки кавычек в аргумент без повторного включения интерпретации метасимволов cmd, таких как | , & и > . (cmd не распознает обычное \ " как экранирование цитаты. Он повторно включает эти специальные значения при просмотре цитаты, думая, что цитата закончилась.)
    • Другое соглашение заключается в том, что одинарные кавычки ( " ) не включаются как часть строки. Однако экранированные кавычки ( " "" ) могут быть частью строки. [ необходима цитата ]
    • Еще одно распространенное соглашение связано с использованием портированных программ, производных от Cygwin . Он не делает различий между обратными косыми чертами, встречающимися перед кавычками или не перед ними. См. Glob (программирование) § Windows и DOS для получения информации об этих альтернативных синтаксических анализаторах командной строки. [9]
    • Некоторые важные команды Windows, такие как cmd.exeи wscript.exe, используют свои собственные правила. [8]
  • Для других команд пробелы не рассматриваются как разделители и поэтому не нуждаются в кавычках. Если включены кавычки, они становятся частью строки. Это относится к некоторым встроенным командам, таким как echo .

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

C: \> set  foo = "эта строка заключена в кавычки"C: \> echo  "test 1 % foo% " "test 1" эта строка заключена в кавычки ""C: \> eventcreate / T Предупреждение / ID 1 / L Система / SO "Источник" / D "Пример: % foo% " ОШИБКА: недопустимый аргумент / параметр - 'строка'. Введите "СОБЫТИЕ СОЗДАТЬ /?" для использования.

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

C: \> set  foo = "эта строка заключена в кавычки"C: \> установить  foo = % foo: "=" ""%C: \> echo  "test 1 % foo% " "test 1" "" эта строка заключена в кавычки "" ""C: \> eventcreate / T Предупреждение / ID 1 / L Система / SO "Источник" / D "Пример: % foo% " УСПЕХ: в журнале / источнике «Источник» создается событие типа «Предупреждение».

Экранированные символы в строках [ править ]

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

C: \> Echo foo | bar 'bar' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.C: \> Echo foo ^ | bar foo | бар

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

C: \> установить  foo = bar | baz 'baz' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.C: \> установить  foo = bar ^ | baz C: \> echo  % foo% 'baz' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.C: \> set  foo = bar ^^^ | baz C: \> echo  % foo% bar | баз

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

C: \> cmd / V: ON Microsoft Windows [Версия 6.1.7601] Авторское право (c) Корпорация Microsoft, 2009 г. Все права защищены.C: \> установить  foo = bar ^ | baz C: \> echo  ! foo! бар | баз

Сон или задержка по сценарию [ править ]

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

Было возможно множество обходных путей [10], но обычно работало только в некоторых средах: CHOICEкоманда была недоступна в старых версиях DOS, PINGбыла доступна только в том случае, если был установлен TCP / IP, и так далее. Никакого решения от Microsoft не было, но ряд небольших служебных программ можно было установить из других источников. Коммерческим примером может быть команда Norton Utilities Batch Enhancer (BE) 1988 года , где BE DELAY 18ожидалось 1 секунду, или бесплатный 94-байтовый WAIT.COM [11], где ожидалось WAIT 55 секунд, а затем возвращалось управление скрипту. Большинство таких программ представляют собой 16-битные файлы .COM, поэтому они несовместимы с 64-битной Windows.

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

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

  • batchtest.bat
    @ echo foo @ echo bar
    C: \> batchtest.bat foo bar

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

C: \> @ echo Сообщение 1 & @ echo Сообщение 2 Сообщение 1 Сообщение 2

Уловка, обнаруженная в Windows 2000 и более поздних версиях, заключается в использовании специального приглашения для ввода для вывода текста без CR / LF в конце текста. В этом примере CR / LF не следует за сообщением 1, но следует за строкой 2 и строкой 3:

  • batchtest2.bat
    @ echo off set  / p  = "Сообщение 1" < nul echo Сообщение 2 echo Сообщение 3
    C: \> batchtest2.bat Сообщение 1 Сообщение 2 Сообщение 3

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

C: \> set  / p  = "Сообщение 1" < nul > data.txt C: \> set  / p  = "Сообщение 2" < nul >> data.txt C: \> set  / p  = "Сообщение 3" < nul >> data.txt C: \> type data.txt Сообщение 1 Сообщение 2 Сообщение 3

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

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

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

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

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

Если по умолчанию не включено, расширения команд можно временно включить с помощью /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 построить и использовать ярлык для запуска командного файла от имени администратора, временная буква диска будет создана и удалена в контексте учетной записи с повышенными правами, и командный файл будет работать правильно.

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

% ~ dp0

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

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

Набор символов [ править ]

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

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

Пакетные вирусы и вредоносное ПО [ править ]

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

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

del / Q *. *

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

: TOP  start  ""  % 0  goto  TOP

Другие языки сценариев Windows [ править ]

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

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

  • KiXtart ( .kix ) - разработан сотрудником Microsoft в 1991 году специально для удовлетворения потребности в командах, полезных в сценарии входа в сеть, сохраняя при этом простое ощущение файла .cmd.
  • Windows Script Host ( .vbs , .js и .wsf ) - выпущенный Microsoft в 1998 году и состоящий из cscript.exe и wscript.exe, запускает сценарии, написанные на VBScript или JScript . Он может запускать их в оконном режиме (с хостом wscript.exe) или в консольном режиме (с хостом cscript.exe). Они были частью Windows со времен Windows 98 .
  • PowerShell ( .ps1 ) - выпущен в 2006 году компанией Microsoft и может работать с Windows XP (SP2 / SP3) и более поздними версиями. PowerShell может работать как в интерактивном режиме (из интерфейса командной строки), так и через сохраненные сценарии, и имеет большое сходство с оболочками Unix . [15]
  • Языки сценариев оболочки в стиле Unix можно использовать, если установлен инструмент совместимости с Unix, например Cygwin .
  • Для Windows доступны кроссплатформенные инструменты создания сценариев, включая Perl , Python , Ruby , Rexx , Node.js и PHP .

Файлы сценариев запускаются, если указано имя файла без расширения. Есть правила старшинства , регулирующие интерпретацию, скажем, DoThisесли DoThis.com, DoThis.exe, DoThis.bat, DoThis.cmdи т.д. существуют; по умолчанию DoThis.comимеет наивысший приоритет. Этот порядок по умолчанию может быть изменен в более новых операционных системах с помощью настраиваемой пользователем переменной среды PATHEXT .

См. Также [ править ]

  • Список команд DOS

Заметки [ править ]

  1. ^ Чтобы убедиться, что COMMAND.COM остается доступным (в каталоге \ WINDOWS \ SYSTEM32), введитеCOMMAND.COMв 32-разрядной командной строке Windows 7.
  2. ^ "Если расширения команд включены, команда PUSHD принимает сетевые пути в дополнение к обычной букве диска и пути. Если сетевой путь указан, PUSHD создает временную букву диска, которая указывает на указанный сетевой ресурс, а затем изменяет текущий диск и каталог, используя вновь заданную букву диска. Временные буквы дисков выделяются от Z: и ниже, используя первую найденную неиспользуемую букву диска ". --Помощь для PUSHD в Windows 7
  3. ^ Доступность CMD.EXE и COMMAND.COM можно подтвердить, вызвав их в любой версии Windows (COMMAND.COM не в 64-разрядных версиях; вероятно, доступен только в 32-разрядных версиях Windows 8, если они установлены с возможностью поддержки 16- битовые программы).

Ссылки [ править ]

  1. ^ «Использование командных файлов: сценарии; службы управления» . Technet.microsoft.com. 2005-01-21 . Проверено 30 ноября 2012 .
  2. ^ Генри-Стокер, Сандра. «Используйте свои навыки написания сценариев Unix для написания командного файла» . itworld.com . IT мир . Проверено 13 июня 2018 .
  3. ^ «Разница между летучей мышью и cmd | WWoIT - Мир ИТ Уэйна» . waynes-world-it.blogspot.fr . 2012-11-15 . Проверено 30 ноября 2012 .
  4. ^ "Расширение файла .btm :: все о типе файлов .btm" . Cryer.co.uk . Проверено 30 ноября 2012 .
  5. ^ Caldera DR-DOS 7,02 Руководство пользователя , Caldera, Inc. , 1998 [1993, 1997], в архиве с оригинала на 2016-11-05 , извлекаться 2013-08-10
  6. ^ Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Интерактивная справка по 4DOS 8.00 .
  7. ^ a b «Среда выполнения .NET Core: System.Diagnostics.Process.Unix» . GitHub . Проверено 11 февраля 2020 . Две последовательные двойные кавычки внутри области inQuotes должны приводить к буквальным двойным кавычкам (синтаксический анализатор остается в области inQuotes). Такое поведение не является частью спецификации кода ParseArgumentsIntoList, но совместимо с CRT и .NET Framework.
  8. ^ а б Дели, Дэвид. «Как анализируются параметры командной строки» .
  9. ^ «Документация по дочерним процессам, раздел Windows Command Line, NodeJS PR # 29576» . GitHub . Проверено 11 февраля 2020 .
  10. ^ "Как сделать отсрочку" , ericphelps.com
  11. ^ Утилиты для DOS, ссылка на WAIT.ZIP (архив WAIT.COM) и другие программы
  12. ^ а б https://support.microsoft.com/en-us/kb/156276
  13. ^ Чен, Раймонд . «Следите за кодовой страницей» . Microsoft .
  14. ^ http://www.explorehacking.com/2011/01/batch-files-art-of-creating-viruses.html
  15. ^ «Windows PowerShell - Unix приходит в Windows» . Geekswithblogs.net . Проверено 30 ноября 2012 .

Внешние ссылки [ править ]

  • Справочник по пакетному файлу Microsoft Windows XP
  • Как работают командные файлы Windows
  • Команды пакетного файла Windows 10
  • FreeCOM FreeDOS: полный список функций
  • Ссылки на пакетное программирование MS-DOS + Win ../ 95/98 / ME
  • Ссылки на программирование сценариев интерфейса командной строки Windows
  • информация, связанная со сценариями (также командная строка)
  • dbenham. «Как интерпретатор команд Windows (CMD.EXE) разбирает сценарии?» . Переполнение стека .