批处理文件从搜索中排除一些目录

批处理文件从搜索中排除一些目录

我正在运行这个小示例脚本:

获取Confs.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"

显然,从文字字符串比较来看,它们不匹配。但从路径角度来看,它们在逻辑上是匹配的。我觉得我只是用错了方法,或者我没有理解引号以及如何正确地转义它们。

任何帮助,将不胜感激。

相关内容