不能仅通过比较这些变量来检查:
C:\>set "d1=C:\"
C:\>set "d2=C:\Windows\.."
C:\>if %d1%==%d2% (echo true) else (echo false)
false
我可以用 pushd
和 popd
以及其他变量组成一个复杂的构造,但没有更简单的方法吗?
最佳答案
你可以用一个小函数来规范化变量。
set d1=C:\
set d2=C:\Windows\..
call :normalize d1
call :normalize d2
if "%d1%"=="%d2%" (echo true) else (echo false)
exit /b
:normalize
setlocal EnableDelayedExpansion
for /F "delims=" %%M in ("!%1!") do (
endlocal
set "%1=%%~dpM"
)
exit /b
关于batch-file - 检查 cmd shell 中的两个变量是否指向同一个文件夹的可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789391/