수색…


소개

모든 cmd.exeDOS 버전에서 일부 문자는 특정 용도 (예 : 명령 재 지정)를 위해 예약되어 있습니다. 이 항목에서는 특수 문자를 문제없이 사용하는 방법에 대해 설명합니다.

캐럿을 사용하여 탈출 (^)

대부분의 특수 문자는 캐럿 ( ^ )을 사용하여 이스케이프 처리 할 수 ​​있습니다. 다음 예제를 살펴보십시오.

echo > Hi
echo ^> Hi 

이 첫 번째 명령 것 출력하지 > Hi 때문에 > 출력을 파일로 리디렉션 의미 특수 문자입니다. 이 경우 파일 이름은 "Hi"입니다.

그러나 두 번째 명령에서, > Hi 캐럿 (때문에 어떤 문제없이 출력 할 것입니다 ^ )를 알려줍니다 > 으로 작동을 중지 명령을 "파일로 출력을 리디렉션"지금 > 그냥 일반 문자입니다.


다음은 탈출 할 수있는 특수 문자 목록입니다 (Rob van der Woude의 페이지에서 가져 와서 편집했습니다)

캐릭터 이스케이프 결과 비고
^ ^^
& ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! DelayedExpansion이 켜져있을 때만 필요합니다.

캐럿 탈출

캐럿은 다른 캐럿을 이스케이프 처리하기 위해 스택 될 수 있습니다. 다음 예제를 고려하십시오.

입력 산출
^ & &
^ ^ ^ & ^ &
^ ^^ & ^^ &

주 : 굵은 체로 된 캐럿은 이스케이프됩니다.


보안 문제

여기 주제 조금 떨어져 있지만 이것은 매우 중요합니다! 파일 끝에 원치 않는 탈출구가 있으면 메모리 누수가 발생할 수 있습니다!

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

이 명령은 모든 메모리를 유출 하여 시스템을 완전히 사용할 수 없게 만듭니다 ! 자세한 내용은 여기 를 참조하십시오.

FIND 및 FINDSTR 특수 문자

findfindstr 에는 약간의주의가 필요한 특수 문자가 있습니다.


발견

- 이스케이프 필요가 하나의 문자가 " . 따옴표를 탈출하려면 그 옆에 또 다른 따옴표를 추가 그래서. " 된다 "" . 아주 간단합니다.


FINDSTR

Findstr 은 탈출 할 문자가 풍부하기 때문에 매우 조심하십시오. \ 사용하여 특수 문자를 이스케이프 처리 할 수 ​​있습니다. 다음은 이스케이프 할 특수 문자 목록입니다.

캐릭터 이스케이프 결과
\ \\
[ \ [
] \]
" \ "
. \.
* \ *
? \?

FOR / F 특수 문자

FOR / F

FOR /F 명령문에서 일부 문자는 이스케이프해야합니다. 목록 (Rob van der Woude의 페이지에서 가져 와서 편집)

캐릭터 이스케이프 결과 비고
' ^ ' usebackq 가 지정되어 있지 않으면 FOR /F 의 대괄호에만 필요합니다.
` ^` usebackq 가 지정되면 FOR /F 의 대괄호에만 필요합니다.
, ^,
; ^;
= ^ = FOR /F 의 괄호 안에 큰 따옴표를 붙이더라도 이스케이프해야합니다.
( ^ (
) ^)

추가 특수 문자

다음은 이스케이프가 필요할 수도 있고 위에 언급되지 않은 다른 특수 문자의 목록입니다.

캐릭터 이스케이프 결과 비고
% %%
[LF] ^ [LF] 이 트릭은 alt.msdos.batch 뉴스 그룹의 Mark Stang이 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