배치 파일 내에서 실행될 때 appcmd.exe가 다르게 동작하는 이유는 무엇입니까?

배치 파일 내에서 실행될 때 appcmd.exe가 다르게 동작하는 이유는 무엇입니까?

appcmdIIS7의 ISAPI 및 CGI 제한 사항에 예외를 추가하려면 다음이 필요합니다 . 내가 추가하는 예외는 다음과 같아야 합니다.

c:\perl\bin\perl.exe "%s" %s

명령줄은 다음과 같습니다.

appcmd set config -section:isapiCgiRestriction "-+[path='c:\perl\bin\perl.exe \"%s\" %s', allowed='true', description='Perl CGI']"

명령줄에서 이것을 실행하면 올바르게 수행되지만 .cmd배치 파일 내에서 이것을 실행하면 경로가 엉망이 되어 다음과 같이 보입니다.

c:\perl\bin\perl.exe "s

첫 번째 perl.exe 매개변수 주위의 따옴표를 이스케이프 처리해야 하기 때문에 문제가 발생하는 것 같습니다 %s. 그러나 이것이 배치 파일에서 다르게 동작해야 하는 이유는 약간 수수께끼입니다.

왜 이런 일이 일어나는지 설명할 수 있는 사람이 있나요?

답변1

Windows 배치 변수에는 접두사가 붙어야 합니다 %.%%s

관련 정보