バッチファイルで一部のディレクトリを検索から除外する

バッチファイルで一部のディレクトリを検索から除外する

次の小さなサンプル スクリプトを実行しています:

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"

明らかに、文字列の文字通りの比較では一致しません。しかし、論理的にはパスの観点からは一致します。私は間違った方法でこれを行っているか、引用符とそれを適切にエスケープする方法を理解していないように感じます。

ご協力いただければ幸いです。

関連情報