el archivo por lotes excluye algún directorio de la búsqueda

el archivo por lotes excluye algún directorio de la búsqueda

Estoy ejecutando este pequeño script de ejemplo:

getConfs.bat myconfig.conf

getConfs.bat tiene este aspecto:

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

El problema con esto es que las cadenas nunca coinciden, aunque el archivo "myconfig.conf" SÍ existe en algunas de esas ubicaciones.

Recibo estas devoluciones:

"C:\Program Files\myApp\confs\tests\myconfig.conf"    

y

""C:\Program Files\myApp\confs\tests"\myconfig.conf"

Obviamente, a partir de una comparación literal de cadenas, no coinciden. Pero lógicamente, desde la perspectiva del camino, sí lo hacen. Siento que estoy haciendo esto de manera incorrecta o que no entiendo las comillas ni cómo escapar de ellas correctamente.

Cualquier ayuda sería apreciada.

información relacionada