간단히 말해서: 스크립트로부터 명령을 받고 Windows 셸을 사용하여 실행하려고 합니다.
현재 우리는 다음과 유사한 방법을 사용합니다.
echo start & command & echo finish
명령에 자체적으로 앰퍼샌드가 포함되어 있지 않으면 잘 작동합니다. 예를 들어
echo begin & if exist c:\temp.txt echo 1 & echo end
파일이 존재하지 않으면 "end"를 쓰지 못합니다.
명령을 로 변경하면 문제가 해결될 수 있지만 echo begin & (if exist c:\temp.txt echo 1) & echo end
, 예를 들어 괄호 기호가 포함된 명령에서는 문제가 발생합니다.
echo begin & (echo %PATH%) & echo end
"\Hewlett-Packard\HP는 현재 예상치 못한 제품입니다."가 인쇄됩니다. 경로에 프로그램 파일(x86)이 있기 때문입니다.
명령 결과에서 특수 문자를 이스케이프 처리하는 방법이 있습니까?
미리 감사드립니다
답변1
문제는 PATH의 공백이므로 따옴표를 사용하십시오.
echo begin & (echo "%PATH%") & echo end