반응형
cmd 파일에서 %와 %%의 차이점은 무엇입니까?
최근에 .cmd 파일에 다음과 유사한 줄을 포함했습니다.
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
원래는 % f 만 사용했으며 명령 줄에서 실행할 때는 제대로 작동하지만 파일을 통해 실행할 때는 제대로 작동하지 않습니다. %% f로 전환했을 때 파일에서 작동했습니다. 차이점이 무엇인지 궁금합니다.
(자세한 설명은 보관 된 Microsoft KB 기사 에서 찾을 수 있습니다 .)
알아야 할 세 가지 :
- 퍼센트 기호는 명령 줄 매개 변수를 나타 내기 위해 배치 파일에 사용되는 :
%1,%2, ... 사이에 문자가있는 두 개의 퍼센트 기호는 변수로 해석됩니다.
echo %myvar%- (배치 파일에서) 사이에 아무것도 없는 두 퍼센트 기호 는 명령 (배치 파일이 아님)에서 단일 퍼센트 기호처럼 취급됩니다.
%%f
그 이유는 무엇입니까?
예를 들어, (단순화 된) 명령 줄을 실행하면
FOR /f %f in ('dir /b .') DO somecommand %f
배치 파일에서 규칙 2 는
%f in ('dir /b .') DO somecommand %
변수로. 이를 방지하려면 규칙 3 을 적용 %하고 두 번째 로을 이스케이프해야합니다 %.
FOR /f %%f in ('dir /b .') DO somecommand %%f
DOS에서는 명령 줄에서 환경 변수를 사용할 수 없었고, %기호를 구분 기호로 사용한 배치 파일에서만 사용할 수있었습니다 . %예를 들어 echo명령문 에서와 같이 배치 파일에서 리터럴 기호 를 원하면 두 배로 표시해야합니다.
이것은 명령 줄에서 환경 변수를 허용하는 Windows NT로 이어졌지만 이전 버전과의 호환성을 위해 여전히 %.cmd 파일에서 기호 를 두 배로 늘려야합니다.
참고 URL : https://stackoverflow.com/questions/14509652/what-is-the-difference-between-and-in-a-cmd-file
반응형
'Program Club' 카테고리의 다른 글
| THREE.js에서 텍스처 사용 (0) | 2020.11.04 |
|---|---|
| RestTemplate을 사용할 때 내부 Jackson 매퍼를 어떻게 구성 할 수 있습니까? (0) | 2020.11.04 |
| Node.js에서 POST 요청을 사용하여 파일 업로드 (0) | 2020.11.04 |
| Elixir : .ex 사용시기 및 .exs 파일시기 (0) | 2020.11.04 |
| Ubuntu에 설치된 GTK + 버전을 어떻게 알 수 있습니까? (0) | 2020.11.04 |