2009-11-16 11 views
5

Windows에서 명령 줄에서 인수를 검색하는 c 프로그램을 작성했습니다. 인수 중 하나는 정규식입니다. 그래서 나는 등. "("와 같은 특수 문자를 검색해야하지만, cmd.exe를 취급 "("와 같은 특수 문자.cmd에 특수 문자를 입력하는 방법은 무엇입니까?

어떻게 할 수는 I 입력이 특수 문자?

감사합니다.

답변

8

당신은 따옴표로 인수를 넣을 수 있습니다 :

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

을 내가 괄호 문제가 발생할 것을 하지 않는 배치 파일에서 조건문이나 루프 블록을 사용하는 가정하지 것이다하지만 문자의 일반적인 배열을.즉, 쉘에 의해 특별하게 취급하고, 인용 또는 탈출 필요한 것은 다음과 같습니다 당신이 당신의 정규 표현식 사람들을 사용하는 경우

& | > <^

, 당신은 따옴표 필요하거나 탈출 그 문자 :

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

(^입니다 이스케이프 문자 다음 문자가 셸에서 해석되지 않고 대신 셸에서 해석되지 않고 대신 문자 그대로 사용됨)

+1

'^'도 이스케이프 처리가 필요하다고 가정합니다. 목록에 추가해야합니다. – quamrana

+0

예, 죄송합니다. 잊어 버린 :-) – Joey

9

일반적으로 어떤 문자 앞에 ^ 그 특별한 성격을 해제하십시오. 예를 들어 단어 do 다음에 Enter 다음에 캐럿의

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> 

.

+0

'if foo == bar (echo^(foo ^))'와 같은 조건부 또는 루프 블록에서 이것을 사용하지 않는 한 괄호를 이스케이프 할 필요가 없음에 유의하십시오. – Joey

관련 문제