【发布时间】:2023-03-22 17:04:02
【问题描述】:
如何将绝对路径批量转换为相对路径?我有一个目录A 的绝对路径和一个参考目录B,我需要A 相对于B 的路径。例如,下面的批处理脚本应该打印..\other\somedir\。
setlocal enabledelayedexpansion
set referencePath=C:\Users\xyz\project\
set absolutePath=C:\Users\xyz\other\somedir\
set relativePath=...
echo %relativePath%
我试过relativePath=!absolutePath:%referencePath%=!,但这会产生绝对路径C:\Users\xyz\other\somedir\。
我需要类似于python函数os.path.relpath的东西:
>>> os.path.relpath("C:\\Users\\xyz\\other\\somedir", "C:\\Users\\xyz\\project\\")
"..\\other\\somedir"
我需要这个,因为我有一个带有类似于上述文件名的命令行参数的批处理文件。此批处理文件创建另一个批处理文件startup.bat,它设置一些环境变量并启动应用程序。 startup.bat 可以通过网络调用,所以我必须使用相对路径。使用绝对路径,环境变量会指向错误机器上的文件。
【问题讨论】:
标签: windows batch-file cmd path