
저는 다음과 같은 작은 예제 스크립트를 실행하고 있습니다.
getConfs.bat myconfig.conf
getConfs.bat는 다음과 같습니다:
set home_dir=C:\Program Files\myApp
set dontSearchLoc="%home_dir%\confs\users" "%home_dir%\confs\system\home"
call :getFiles
:getFiles
for /R "%home_dir%"\confs\ %%f IN (%~1) do (
FOR %%a IN (%dontSearchLoc%) DO (
echo "%%f"
echo "%%a\%%~nxf"
If %%f=="%%a\%%~nxf" (
echo Yes
) else (
echo No>> NUL 2>&1 )
)
)
exit /B
문제는 "myconfig.conf" 파일이 해당 위치 중 일부에 존재하더라도 문자열이 일치하지 않는다는 것입니다.
나는 다음과 같은 수익을 얻었습니다.
"C:\Program Files\myApp\confs\tests\myconfig.conf"
그리고
""C:\Program Files\myApp\confs\tests"\myconfig.conf"
분명히 리터럴 문자열 비교에서 일치하지 않습니다. 그러나 경로 관점에서는 논리적으로 그렇습니다. 나는 이 문제에 대해 잘못된 방향으로 가고 있거나 인용문과 인용문을 적절하게 이스케이프하는 방법을 이해하지 못하는 것 같습니다.
어떤 도움이라도 주시면 감사하겠습니다.