
我正在運行這個小範例腳本:
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"
顯然,從文字字串比較來看,它們不匹配。但從邏輯上講,從路徑的角度來看,它們確實如此。我覺得我只是以錯誤的方式處理這件事,或者我不理解這些引語以及如何正確地逃避它們。
任何幫助,將不勝感激。