반응형
MS-DOS 변수를 정의 해제하는 방법은 무엇입니까?
CMD 셸에서 다음을 실행한다고 가정 해 보겠습니다.
set FOO=bar
CMD 셸을 재활용하는 것 외에이 변수를 정의 해제하는 방법이 있습니까?
예, 다음으로 설정을 해제 할 수 있습니다.
set FOO=
또는 명시 적으로 다음을 사용합니다.
set "FOO="
=
기호 뒤에 후행 외부 (보이지 않는) 문자가 나오지 않도록 하십시오. 그건:
set FOO=
과 다릅니다set FOO=
.
변수 설정을 해제하는 안전한 방법은 따옴표도 사용하는 것입니다. 그러면 후행 공백에 문제가 없습니다.
set FOO=bar
echo %FOO%
set "FOO=" text after the last quote is ignored
echo %FOO%
다른 방법
@Echo oFF
setlocal
set FOO=bar
echo %FOO%
endlocal
echo %FOO%
pause
참고 : 대화 형 명령 프롬프트에서는 작동하지 않습니다. 그러나 배치 스크립트에서 작동합니다.
이것은 Windows 7 CMD 셸에서 나를 위해 작동합니다.
set FOO=bar
echo %FOO% // bar
set FOO=
echo %FOO% // empty; calling "set" no longer lists it
다음은 코멘트로만 드리고 싶지만 그 자체만으로도 충분히 중요하다고 생각합니다.
많은 이전 답변에서 후행 공백을주의해야한다고 언급했습니다. 그리고 그것은 사실입니다. 그러나 나는 때때로 후행 공백이 무엇이든 상관없이 거기에 들어가기를 원한다는 것을 발견했습니다. 특히 명령 줄 한 줄을 수행하고 명령 구분 기호로 공백이 필요한 경우.
이것이 그 문제에 대한 해결책입니다.
SET FOO=Bar
echo %FOO%
:: outputs Bar
SET "FOO="
echo %FOO%
:: outputs %FOO%
그런 식으로 선언을 큰 따옴표로 묶으면 공백 문제를 완전히 피할 수 있습니다. 이것은 또한 변수가 연결을 통해 생성 될 때 매우 유용 할 수 있습니다. 예를 들어 경로 사이의 공백을 제거합니다.
SET A=c:\users\ && SET D=Daniel
SET P="%a%%d%"
ECHO %P%
:: outputs "C:\Users\ Daniel"
:: Notice the undesirable space there
참고 URL : https://stackoverflow.com/questions/7219672/how-to-undefine-an-ms-dos-variable
반응형
'Programing' 카테고리의 다른 글
git의 후크에 대한 심볼릭 링크 (0) | 2020.10.12 |
---|---|
MVC3의 HTML.ActionLink에 클래스를 추가 할 수 있습니까? (0) | 2020.10.12 |
tar.gz 파일 압축 해제 (0) | 2020.10.12 |
TCP에서 흐름 제어와 혼잡 제어의 차이점은 무엇입니까? (0) | 2020.10.12 |
nginx.conf를 편집하여 파일 크기 업로드를 늘리는 방법 (0) | 2020.10.12 |