Как ввести специальный символ в cmd? - PullRequest
6 голосов
/ 16 ноября 2009

Я написал программу c, которая получает аргументы из командной строки под Windows. Одним из аргументов является регулярное выражение. Поэтому мне нужно получить специальные символы, такие как "(,." И т. Д., Но cmd.exe рассматривает "(" как специальный символ.

Как я могу ввести эти специальные символы?

спасибо.

Ответы [ 2 ]

9 голосов
/ 16 ноября 2009

Как правило, вы можете добавить к любому символу ^, чтобы отключить его особый характер. Например:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Pax>echo No ^<redirection^> here and can also do ^
More? multi-line, ^(parentheses^) and ^^ itself
No <redirection> here and can also do multi-line, (parentheses) and ^ itself

C:\Documents and Settings\Pax>

Это каретка, за которой следует слово ENTER после слова do.

8 голосов
/ 16 ноября 2009

Вы можете поместить аргументы в кавычки:

myprogram.exe "(this is some text, with special characters.)"

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

& | > < ^

Если вы используете их в своем регулярном выражении, вам нужны кавычки или экранирование этих символов:

myprogram "(.*)|[a-f]+"
myprogram (.*)^|[a-f]+

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...