Поиск…


Вступление

Во всех версиях cmd.exe и DOS некоторые символы зарезервированы для конкретного использования (например, перенаправление команды). В этом разделе рассказывается о том, как использовать специальные символы без проблем.

Побег с использованием каретки (^)

Большинство специальных символов могут быть экранированы с помощью каретки ( ^ ). Взгляните на следующий пример.

echo > Hi
echo ^> Hi 

Эта первая команда не выводит > Hi потому что > является специальным символом, что означает перенаправление вывода в файл. В этом случае файл называется «Привет»,

Однако во второй команде > Hi выводится без каких-либо проблем, потому что функция caret ( ^ ) сообщает > перестать функционировать как команда «перенаправить вывод в файл», теперь > является обычным символом.


Вот список специальных символов, которые могут быть экранированы (сняты и отредактированы на странице Роб ван дер Вуде)

символ Сбежавший результат замечания
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Требуется только, когда DelayedExpansion включен

Выход из каретки

Уход может быть уложен в стопку с помощью других кареток, рассмотрим следующий пример.

вход Выход
^ & &
^ ^ ^ & ^ &
^ ^ ^ ^ ^ ^^ &

Примечание. Масштабирование, выделенное полужирным шрифтом, исчезает.


Проблема безопасности

Здесь немного, но это очень важно! Нежелательный уход в конце файла может привести к утечке памяти!

any-invalid-command-you-like-here ^

Эта команда будет утечка всей памяти, что сделает систему полностью непригодной для использования ! См. Здесь для получения дополнительной информации.

Специальные символы FIND и FINDSTR

В find и findstr есть некоторые специальные символы, которые требуют некоторой осторожности.


НАХОДИТЬ

Существует только один символ, который нуждается в ускорении - " цитата». Чтобы избежать этого, просто добавьте еще одну цитату рядом с ней. Таким образом, " становится "" . Довольно просто.


FINDSTR

Findstr приходит с большим количеством символов, чтобы убежать, поэтому, пожалуйста, будьте очень осторожны. Используя \ , мы можем избежать специальных символов. Вот список специальных символов для выхода

символ Сбежавший результат
\ \\
[ \ [
] \]
"
, \.
* \ *
? \?

Специальные символы FOR / F

FOR / F

В инструкции FOR /F некоторым символам требуется экранирование, вот список (снятый и отредактированный на странице Роб ван дер Вуде)

символ Сбежавший результат замечания
' usebackq только в скобках FOR /F , если не указано значение usebackq .
` ^ ` usebackq только в скобках FOR /F , когда указано использование usebackq
, ^,
; ^;
знак равно ^ = ┣ Должен быть экранирован в скобках FOR /F , даже если он имеет двойные кавычки
( ^ (
) ^)

Дополнительные специальные символы

Вот список других специальных символов, которые требуют (ы) / могут нуждаться в экранировании, но не упомянуты выше.

символ Сбежавший результат замечания
% %%
[LF] ^ [LF] Этот трюк был отмечен Марк alt.msdos.batch группе новостей alt.msdos.batch .

Выход из трубопровода

Когда есть выражение с трубой, cmd запускает два потока по обеим сторонам трубы, и выражение анализируется дважды (для каждой стороны трубы), поэтому необходимо укоротить уход.

С левой стороны:

echo ^^^&|more

На правой стороне:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow