2012-06-13 3 views
0

어떻게 수행 할 수 있습니다배치 파일 : echo '|' 문자

echo [-help | -h]: displays help 

순간 내가 얻을 그것을 할 때 : 명령의

구문이 올바르지 않습니다.

이 작동하지만

echo "[-help | -h]: displays help" 

은 또한 따옴표를 출력하고, 나는 그것을 원하지 않는다.

답변

3

사용이

echo [-help ^| -h]: displays help 

^ 파이프를 이스케이프합니다.

+0

감사합니다, – Caner

+0

참고로,'^'이스케이프는'<' and '>'과'^'자체를 이스케이프하기 위해 사용될 수 있습니다. – adarshr

+0

문제 없으니 기꺼이 도와주세요. –

0

[-help | -h]-help 또는 -h을 의미합니다. 유일한 인수로 -h과 함께 명령을 다시 실행하십시오.

+0

텍스트를 인쇄하고 싶습니다. 실행하고 싶지 않습니다. – Caner

+1

아하. 따옴표 안에 전체 줄을 벗어날 수 없니? – kragniz

+0

그런 다음 따옴표를 인쇄합니다 – Caner

1

여러 가지 방법이 있습니다 :

  1. 당신은 캐럿

    에코 [? -help^| -]로 모든 문자 (하지만 비율을) 탈출 할 수
    캐럿으로 이스케이프

  2. 지연 확장 사용
    지연 확장의 내용이 더 이상 분석되지 않으므로 모든 문자를 포함 할 수 있습니다.

    setlocal EnableDelayedExpansion "helpStr = [-help | -?]" echo! helpStr!

  3. 따옴표 사라짐
    따옴표는 특수 문자를 이스케이프 처리 할 수도 있지만 에코도 표시됩니다.
    사라지는 따옴표는 일반적인 따옴표처럼 작동하지만 에코하기 전에 아무 것도 대체되지 않습니다. 지연 확장으로

    3.1, 추가! "=! 어디서나 견적이 필요,이 표현은 당신이 사용할 수 지연 확장하지 않고 나중에

    setlocal EnableDelayedExpansion
    echo !"=![ -help | -?]

    3.2, 아무것도로 대체됩니다 FOR 루프

FOR %%^" in ("") do (
    echo %%~"[ -help | -?]` 
)
1

DOS의 이스케이프 문자는 usuall (이다 Y)^

그래서 시도 :

echo [-help ^| -h]: displays help 

그것은 비록 조금 이상해 및 예외의 많은.여기를 참조하십시오 : http://www.robvanderwoude.com/escapechars.php

+0

[DOS에는 이스케이프 문자가 없습니다.] (https://en.wikipedia.org/wiki/Escape_character#Windows_Command_Prompt), Windows CMD에서만 가능합니다. [그들은 완전히 다른 것입니다] (https://scalibq.wordpress.com/2012/05/23/the-windows-command-prompt-is-not-a-dos-prompt/) –