arquivo em lote exclui algum diretório da pesquisa

arquivo em lote exclui algum diretório da pesquisa

Estou executando este pequeno script de exemplo:

getConfs.bat meuconfig.conf

getConfs.bat se parece com isto:

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

O problema com isso é que as strings nunca correspondem, mesmo que o arquivo "myconfig.conf" EXISTE em alguns desses locais.

Estou recebendo esses retornos:

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

e

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

Obviamente, a partir de uma comparação literal de strings, elas não correspondem. Mas logicamente, do ponto de vista do caminho, eles o fazem. Eu sinto que estou fazendo isso da maneira errada ou não estou entendendo as citações e como escapar delas adequadamente.

Qualquer ajuda seria apreciada.

informação relacionada