batch-file - 检查 cmd shell 中的两个变量是否指向同一个文件夹的可靠方法

标签 batch-file cmd

不能仅通过比较这些变量来检查:

C:\>set "d1=C:\"
C:\>set "d2=C:\Windows\.."
C:\>if %d1%==%d2% (echo true) else (echo false)
false

我可以用 pushdpopd 以及其他变量组成一个复杂的构造,但没有更简单的方法吗?

最佳答案

你可以用一个小函数来规范化变量。

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/

相关文章:

sql - 获取 .BAT 文件或 SQLCMD 以提示用户输入

batch-file - 构建系统 - Sublime Text 3

windows - 为 stderr 更改 Windows 上的文本输出颜色

javascript - 如何使用 Windows cmd 在特定页面上运行 JavaScript?

java - 错误: Could not find or load main class when trying to run a java program on command line

windows - 无法从批处理文件打开 .chm 文件

batch-file - 批量处理中,如何在输入提示字符串的开头创建空格?

java - JSR 352 重新开始工作?

java - R/Java .jar - 设置环境变量。未找到 native JRI 库

javascript - 使用 ActiveX 获取 Windows CMD 输出