Пакетный файл
Расширения имен файлов | .bat , .cmd , .btm |
---|---|
Тип интернет-СМИ |
|
Тип формата | Сценарии |
Контейнер для | Скрипты |
Пакетный файл — это файл сценария в 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 .
Детальная обработка пакетных файлов существенно изменилась в разных версиях. Некоторые сведения в этой статье применимы ко всем пакетным файлам, а другие сведения относятся только к определенным версиям.
Варианты
[ редактировать ]ПРИНАДЛЕЖАЩИЙ
[ редактировать ]В MS-DOS пакетный файл можно запустить из интерфейса командной строки, введя его имя, затем все необходимые параметры и нажав кнопку ↵ Enter ключ. При загрузке DOS файл AUTOEXEC.BAT , если он присутствует, автоматически выполняется, поэтому любые команды, которые необходимо выполнить для настройки среды DOS, могут быть помещены в этот файл. Пользователи компьютеров могут использовать файл AUTOEXEC.BAT для установки системной даты и времени, инициализации среды DOS, загрузки любых резидентных программ или драйверов устройств или инициализации сетевых подключений и назначений.
Расширение имени файла .bat идентифицирует файл, содержащий команды, которые выполняются интерпретатором команд COMMAND.COM построчно, как если бы это был список команд, введенных вручную, с некоторыми дополнительными командами, специфичными для пакетного файла, для основных функций программирования. включая GOTO
команда изменения порядка выполнения строки.
Ранние окна
[ редактировать ]Microsoft Windows была представлена в 1985 году как надстройка на основе графического пользовательского интерфейса (GUI) к текстовым операционным системам и была разработана для работы в DOS. Для того, чтобы начать его, необходимо WIN
была использована команда, которую можно было добавить в конец файла AUTOEXEC.BAT , чтобы разрешить автоматическую загрузку Windows. В более ранних версиях можно было запустить файл типа .bat из Windows в командной строке MS-DOS. Windows 3.1x и более ранние версии, а также Windows 9x вызывали COMMAND.COM для запуска пакетных файлов.
ОС/2
[ редактировать ]Операционная система IBM поддерживала пакетные файлы в OS/2 стиле DOS. Он также включал версию REXX для пакетных файлов , более продвинутого языка сценариев . IBM и Microsoft начали разработку этой системы, но во время ее создания разошлись из-за спора; в результате IBM назвала свою DOS-подобную консольную оболочку без упоминания Microsoft, назвав ее просто DOS, хотя это, по-видимому, не имело никакого значения в отношении работы пакетных файлов из COMMAND.COM.
Интерпретатор пакетных файлов OS/2 также поддерживает команду EXTPROC. При этом пакетный файл передается программе, указанной в файле EXTPROC, как файл данных. Названная программа может быть файлом сценария; это похоже на #! механизм, используемый Unix-подобными операционными системами.
Windows НТ
[ редактировать ]В отличие от 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 [update], cmd.exe — это обычный интерпретатор команд для пакетных файлов; более старый COMMAND.COM также можно запускать в 32-битных версиях Windows, способных запускать 16-битные программы. [номер 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 Hello World!
PAUSE
Чтобы выполнить файл, его необходимо сохранить с суффиксом расширения имени файла .bat (или .cmd для операционных систем типа Windows NT) в обычном текстовом формате, обычно создаваемом с помощью текстового редактора, такого как Microsoft Notepad , или текстового процессора, работающего в обычный текстовый режим.
При выполнении отображается следующее:
Hello World! Press any key to continue . . .
Объяснение
[ редактировать ]Интерпретатор выполняет каждую строку по очереди, начиная с первой. @
Символ в начале любой строки не позволяет подсказке отображать эту команду во время ее выполнения. Команда ECHO OFF
отключает подсказку навсегда или до тех пор, пока она не будет включена снова. Комбинированный @ECHO OFF
часто, как здесь, включается первая строка командного файла, предотвращающая отображение каких-либо команд. Затем выполняется следующая строка и ECHO Hello World!
командные выходы Hello World!
. Следующая строка выполняется и PAUSE
команды отображаются Press any key to continue . . .
и приостанавливает выполнение скрипта. После нажатия клавиши скрипт завершается, так как команд больше нет. В Windows, если сценарий выполняется из уже запущенного окна командной строки , окно остается открытым в командной строке, как в MS-DOS; в противном случае окно закрывается при завершении.
Ограничения и исключения
[ редактировать ]Нулевые значения в переменных
[ редактировать ]Расширения переменных подставляются в команду в текстовом виде, и, таким образом, переменные, которые ничего не содержат, просто исчезают из синтаксиса, а переменные, содержащие пробелы, превращаются в несколько токенов. Это может привести к синтаксическим ошибкам или ошибкам.
Например, если %foo% пуст, этот оператор:
IF %foo%==bar ECHO Equal
анализирует как ошибочную конструкцию:
IF ==bar ECHO Equal
Аналогично, если %foo%
содержит abc def
, то возникает другая синтаксическая ошибка:
IF abc def==bar ECHO Equal
Обычный способ предотвратить эту проблему — заключить расширение переменных в кавычки, чтобы пустая переменная расширялась до допустимого выражения. IF ""=="bar"
вместо недействительного IF ==bar
. Текст, который сравнивается с переменной, также должен быть заключен в кавычки, поскольку кавычки не являются специальным синтаксисом-разделителем; эти персонажи представляют собой самих себя.
IF "%foo%"=="bar" ECHO Equal
Задержка !VARIABLE! Расширение, доступное в Windows 2000 и более поздних версиях, можно использовать, чтобы избежать этих синтаксических ошибок. В этом случае переменные со значением NULL или переменные, состоящие из нескольких слов, не являются синтаксически ошибочными, поскольку значение расширяется после анализа команды IF:
IF !foo!==bar ECHO Equal
Еще одно отличие Windows 2000 и более поздних версий заключается в том, что пустая переменная (неопределенная) не заменяется. Как описано в предыдущих примерах, предыдущее поведение пакетного интерпретатора приводило к пустой строке. Пример:
C:\>set MyVar=
C:\>echo %MyVar%
%MyVar%
C:\>if "%MyVar%"=="" (echo MyVar is not defined) else (echo MyVar is %MyVar%)
MyVar is %MyVar%
Пакетные интерпретаторы до Windows 2000 отображали результат MyVar is not defined
.
Кавычки и пробелы в переданных строках
[ редактировать ]В отличие от процессов Unix/POSIX, которые получают аргументы командной строки, уже разделенные оболочкой на массив строк, процесс Windows получает всю командную строку как одну строку через функцию API GetCommandLine . В результате каждое приложение 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]
- Широко используемое соглашение реализуется анализатором командной строки, встроенным в библиотеку времени выполнения Microsoft Visual C++, в функции CommandLineToArgvW . Он использует соглашение, согласно которому 2 n обратных косых черт, за которыми следуют кавычки ("), создают n обратных косых черт, за которыми следует начальная/конечная кавычка, тогда как (2 n )+1 обратная косая черта, за которой следует кавычка, снова создают n обратных косых черт, за которыми следует литерал кавычки. Это же соглашение является частью спецификации .NET Framework . [7]
- Для других команд пробелы не рассматриваются как разделители и поэтому не требуют кавычек. Если включены кавычки, они становятся частью строки. Это относится к некоторым встроенным командам, таким как эхо .
Если строка содержит кавычки и должна быть вставлена в другую строку текста, которая также должна быть заключена в кавычки, требуется особое внимание к механизму кавычек:
C:\>set foo="this string is enclosed in quotation marks"
C:\>echo "test 1 %foo%"
"test 1 "this string is enclosed in quotation marks""
C:\>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%"
ERROR: Invalid Argument/Option - 'string'.
Type "EVENTCREATE /?" for usage.
В Windows 2000 и более поздних версиях решение состоит в том, чтобы заменить каждое появление символа кавычки внутри значения серией из трех символов кавычек:
C:\>set foo="this string is enclosed in quotes"
C:\>set foo=%foo:"="""%
C:\>echo "test 1 %foo%"
"test 1 """this string is enclosed in quotes""""
C:\>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%"
SUCCESS: A 'Warning' type event is created in the 'Source' log/source.
Экранированные символы в строках
[ редактировать ]Некоторые символы, например трубка ( |
) символы имеют особое значение для командной строки. Их нельзя распечатать как текст с помощью Команда ECHO , если она не экранирована символом вставки ^:
C:\>echo foo | bar
'bar' is not recognized as an internal or external command,
operable program or batch file.
C:\>echo foo ^| bar
foo | bar
Однако экранирование не работает должным образом при вставке экранированного символа в переменную среды. При простом отображении переменная содержит команду живого канала. Для отображения символа в виде текста в переменной необходимо экранировать как саму каретку, так и экранированный символ:
C:\>set foo=bar | baz
'baz' is not recognized as an internal or external command,
operable program or batch file.
C:\>set foo=bar ^| baz
C:\>echo %foo%
'baz' is not recognized as an internal or external command,
operable program or batch file.
C:\>set foo=bar ^^^| baz
C:\>echo %foo%
bar | baz
Отложенное раскрытие, доступное с помощью или с в Windows 2000 и более поздних версиях, может использоваться для отображения специальных символов, хранящихся в переменных среды, поскольку значение переменной расширяется после анализа команды:
C:\>cmd /V:ON
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>set foo=bar ^| baz
C:\>echo !foo!
bar | baz
Сон или запланированная задержка
[ редактировать ]До тех пор, пока в Windows Vista не появилась команда TIMEOUT, не существовало простого способа реализовать временную паузу, поскольку команда PAUSE останавливает активность сценария на неопределенный срок до тех пор, пока не будет нажата любая клавиша.
Было возможно множество обходных путей, [10] но обычно работало только в некоторых средах: CHOICE
команда не была доступна в старых версиях DOS, PING
был доступен только в том случае, если был установлен TCP/IP и так далее. Microsoft не предоставила решения, но ряд небольших служебных программ можно было установить из других источников. Коммерческим примером может служить команда Norton Utilities Batch Enhancer (BE) 1988 года, где BE DELAY 18
будет ждать 1 секунду или бесплатный 94-байтовый WAIT.COM [11] где WAIT 5
подождал бы 5 секунд, а затем вернул бы управление сценарию. Большинство таких программ представляют собой 16-разрядные файлы .COM, поэтому несовместимы с 64-разрядной версией Windows.
Вывод текста с урезанным CR/LF
[ редактировать ]автоматически добавляются управляющие символы возврата каретки (CR) и перевода строки Обычно ко всему печатному тексту в конце каждой строки (LF).
- пакетный тест.bat
@echo foo @echo bar
C:\>batchtest.bat foo bar
Не имеет значения, используют ли две команды echo одну и ту же командную строку; коды CR/LF вставляются, чтобы разбить вывод на отдельные строки:
C:\>@echo Message 1&@echo Message 2
Message 1
Message 2
Хитрость, обнаруженная в Windows 2000 и более поздних версиях, заключается в использовании специального приглашения для ввода для вывода текста без CR/LF в конце текста. В этом примере CR/LF не следует за Сообщением 1, но следует за Строкой 2 и Строкой 3:
- пакетный тест2.bat
@echo off set /p ="Message 1"<nul echo Message 2 echo Message 3
C:\>batchtest2.bat Message 1Message 2 Message 3
Это можно использовать для вывода данных в текстовый файл без добавления CR/LF в конец:
C:\>set /p ="Message 1"<nul >data.txt
C:\>set /p ="Message 2"<nul >>data.txt
C:\>set /p ="Message 3"<nul >>data.txt
C:\>type data.txt
Message 1Message 2Message 3
Однако невозможно внедрить этот урезанный вывод подсказки CR/LF непосредственно в переменную среды.
Установка рабочего каталога по единому соглашению об именах (UNC) с помощью ярлыка
[ редактировать ]Невозможно иметь командную строку, которая использует путь UNC в качестве текущего рабочего каталога; например \\server\share\directory\
Командная строка требует использования букв дисков для назначения рабочего каталога, что усложняет запуск сложных пакетных файлов, хранящихся на общем ресурсе UNC сервера. Хотя пакетный файл можно запустить по пути к файлу UNC, рабочим каталогом по умолчанию является C:\Windows\System32\
.
В Windows 2000 и более поздних версиях обходным путем является использование PUSHD
и POPD
команда с расширениями команд. [номер 2]
Если они не включены по умолчанию, расширения команд можно временно включить с помощью /E:ON
переключатель для интерпретатора команд.
Таким образом, чтобы запустить пакетный файл в общей папке UNC, назначить временную букву диска общей папке UNC и использовать общую папку UNC в качестве рабочего каталога командного файла, можно создать ярлык Windows, который выглядит следующим образом:
- Цель:
Атрибут рабочего каталога этого ярлыка игнорируется.
Это также решает проблему, связанную с контролем учетных записей пользователей (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 или с помощью команды «Пуск». ( C$
доля предназначена для администраторов).
Набор символов
[ редактировать ]Пакетные файлы используют набор символов OEM, определенный компьютером, например, кодовая страница 437 . Их части, отличные от ASCII, несовместимы с Unicode или наборами символов Windows , которые иначе используются в Windows, поэтому необходимо соблюдать осторожность. [13] Имена файлов, отличные от английского, работают только в том случае, если они введены через редактор, совместимый с набором символов DOS. Имена файлов с символами, не входящими в этот набор, не работают в пакетных файлах.
Чтобы получить командную строку с Unicode вместо кодовой страницы 437 или аналогичной, можно использовать команду cmd /U
команда. В такой командной строке будет работать командный файл с именами файлов в Юникоде. Также можно использовать cmd /U
для прямого выполнения команд с использованием Unicode в качестве набора символов. Например, cmd /U /C dir > files.txt
создает файл, содержащий список каталогов с правильными символами Windows в кодировке UTF-16 LE.
Пакетные вирусы и вредоносные программы
[ редактировать ]Как и любой другой язык программирования, пакетные файлы могут использоваться злонамеренно. Простые трояны и форк-бомбы легко создаются, а пакетные файлы могут выполнять своего рода отравление DNS , изменяя файл хостов . Возможны пакетные вирусы, которые также могут распространяться через USB-накопители Windows с помощью функции автозапуска . [14]
Следующая команда в пакетном файле удалит все данные в текущем каталоге (папке) — без предварительного запроса подтверждения:
del /Q *.*
Эти три команды представляют собой простую вилочную бомбу , которая будет постоянно воспроизводить себя, истощая доступные системные ресурсы, замедляя или приводя к сбою системы:
:TOP
start "" %0
goto TOP
Другие языки сценариев Windows
[ редактировать ]Командный процессор cmd.exe, который интерпретирует файлы .cmd, поддерживается во всех 32-разрядных версиях Windows до Windows 10 и 64-разрядных версиях до Windows 11. COMMAND.EXE, который интерпретирует файлы .BAT, поддерживался во всех 16 версиях. - и 32-битные версии как минимум до Windows 10. [номер 3]
Для Windows доступны другие, более поздние и более мощные языки сценариев. Однако перед их использованием необходимо установить интерпретатор языка сценариев:
- Extended Batch Language (EBL) ( .bat ) — разработан Фрэнком Кановой как собственный проект во время работы в IBM в 1982 году. Впоследствии он был продан Seaware Corp как интерпретатор и компилятор в первую очередь для DOS, но позже для 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, например Cygwin . Языки сценариев оболочки в стиле Unix можно использовать, если установлен
- кроссплатформенные инструменты создания сценариев, включая Perl , Python , Ruby , Rexx , Node.js и PHP . Для Windows доступны
Файлы сценариев запускаются, если введено имя файла без расширения. Существуют правила приоритета, регулирующие интерпретацию, скажем, DoThis
если DoThis.com
, DoThis.exe
, DoThis.bat
, DoThis.cmd
и т. д. существуют; по умолчанию DoThis.com
имеет высший приоритет. Этот порядок по умолчанию может быть изменен в новых операционных системах с помощью настраиваемой пользователем PATHEXT переменной среды .
См. также
[ редактировать ]- Список команд DOS
- Сценарий оболочки , «командный файл» Unix и Linux.
Примечания
[ редактировать ]- ^ Чтобы убедиться, что COMMAND.COM остается доступным (в каталоге \WINDOWS\SYSTEM32), введите
COMMAND.COM
в командной строке 32-разрядной версии Windows 7. - ^ «Если расширения команд включены, команда PUSHD принимает сетевые пути в дополнение к обычной букве диска и пути. Если указан сетевой путь, PUSHD создает временную букву диска, которая указывает на этот указанный сетевой ресурс, а затем меняет текущий диск и каталоге с использованием новой определенной буквы диска. Буквы временных дисков назначаются начиная с Z: и ниже, используя первую найденную неиспользуемую букву диска. --Справка по PUSHD в Windows 7
- ^ Доступность CMD.EXE и COMMAND.COM можно подтвердить, вызвав их в любой версии Windows (COMMAND.COM отсутствует в 64-разрядных версиях; вероятно, доступен только в 32-разрядных версиях Windows 8, если он установлен с возможностью поддержки 16-разрядных версий). битовые программы).
Ссылки
[ редактировать ]- ^ «Использование пакетных файлов: сценарии; службы управления» . Technet.microsoft.com. 21 января 2005 г. Архивировано из оригинала 28 декабря 2011 г. Проверено 30 ноября 2012 г.
- ^ Генри-Стокер, Сандра (18 июля 2007 г.). «Используйте свои навыки написания сценариев Unix для написания пакетного файла» . itworld.com . Мир ИТ. Архивировано из оригинала 14 июня 2018 г. Проверено 13 июня 2018 г.
- ^ «Разница между bat и cmd | WWoIT — мир информационных технологий Уэйна» . waynes-world-it.blogspot.fr . 15 ноября 2012 г. Архивировано из оригинала 02 марта 2014 г. Проверено 30 ноября 2012 г.
- ^ «расширение файла btm:: все о типе файлов .btm» . Cryer.co.uk. Архивировано из оригинала 11 октября 2008 г. Проверено 30 ноября 2012 г.
- ^ Руководство пользователя Caldera DR-DOS 7.02 , Caldera, Inc. , 1998 [1993, 1997], заархивировано из оригинала 05 ноября 2016 г. , получено 10 августа 2013 г.
- ^ Братья Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Матиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27 февраля 2002 г.). Онлайн-справка по 4DOS 8.00 .
- ^ Перейти обратно: а б «Среда выполнения .NET Core: System.Diagnostics.Process.Unix» . Гитхаб . Архивировано из оригинала 29 марта 2023 г. Проверено 11 февраля 2020 г.
Две последовательные двойные кавычки внутри региона inQuotes должны привести к буквальной двойной кавычке (парсер остается в регионе inQuotes). Это поведение не является частью спецификации code:ParseArgumentsIntoList, но совместимо с CRT и .NET Framework.
- ^ Перейти обратно: а б Дели, Дэвид. «Как анализируются параметры командной строки» . Архивировано из оригинала 8 июня 2020 г. Проверено 8 июня 2020 г.
- ^ «Документация дочернего процесса, раздел «Командная строка Windows», NodeJS PR #29576» . Гитхаб . Архивировано из оригинала 21 августа 2022 г. Проверено 11 февраля 2020 г.
- ^ «Как сделать задержку». Архивировано 20 ноября 2011 г. на Wayback Machine , ericphelps.com.
- ^ "Утилиты для DOS, привязка к WAIT.ZIP (архив WAIT.COM) и другие программы" . Архивировано из оригинала 13 ноября 2011 г. Проверено 15 ноября 2011 г.
- ^ Перейти обратно: а б «Cmd.exe не поддерживает имена UNC в качестве текущего каталога» . Архивировано из оригинала 18 мая 2015 г. Проверено 28 апреля 2015 г.
- ^ Чен, Рэймонд . «Следите за кодовой страницей» . Майкрософт . Архивировано из оригинала 17 января 2012 г. Проверено 13 декабря 2011 г.
- ^ Пакетные файлы — искусство создания вирусов. Архивировано 29 октября 2013 г. на Wayback Machine.
- ^ «Windows PowerShell — Unix приходит в Windows» . Geekswithblogs.net. Архивировано из оригинала 14 июня 2012 г. Проверено 30 ноября 2012 г.