Ответ 1
Одиночные кавычки вообще не используются процессором команд cmd.exe, за исключением того, чтобы заключить команду для запуска в инструкции FOR/F:
for /f %%A in ('someCommand') do ...
Или указать строку для обработки FOR/F, если используется опция USEBACKQ:
for /f "usebackq" %%A in ('some string') do ...
Все остальные цитируемые обработчики cmd.exe выполняются с двойными кавычками. Однако есть служебные программы Windows (внешние команды), такие как WMIC, которые используют одиночные кавычки для собственных целей цитирования. Но нет стандарта - каждая утилита свободна иметь собственную интерпретацию одинарных кавычек.
Непоследовательные правила escape и quote, используемые cmd.exe и различными утилит командной строки, часто затрудняют поиск правильного синтаксиса, необходимого для любой ситуации.
Вот несколько важных замечаний об использовании двойных кавычек "
с cmd.exe.
-
Двойные кавычки - это простой конечный автомат. Первый
"
поворачивается", затем он выключается. -
Все специальные символы обрабатываются как литеральные значения при цитировании, за исключением символов
%
и<newLine>
, и все!
символ, если включено замедленное расширение, и символ^
если замедленное расширение включено, и!
также появляется где-то внутри линии. -
Если цитирование отключено, вы можете избежать
"
как^"
чтобы предотвратить его включение. Но как только вы укажете, вы не сможете избежать закрытия."
Самый следующий"
всегда будет выключаться.