Как ввести специальный символ в cmd?

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

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

спасибо.

2 ответов


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

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

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

& | > < ^

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

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

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


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

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>

это каретка с последующим вводом после слова do.