有没有办法从批处理中的绝对文件路径解析..
?例如,以下批处理脚本应输出C:\Users\xyz\other\abc.txt
:
REM Project dir is an absolute path, for example, C:\Users\xyz\project\
SET projectDir=%~1
REM Target file is a path relative to the project dir, for example, ..\other\abc.txt
SET target=%~2
REM Concatenate paths. This becomes C:\Users\xyz\project\..\other\abc.txt
SET absoluteTarget=%projectDir%%target%
SET absoluteTargetClean=...
echo %absoluteTargetClean%
absoluteTarget
变量引用现有文件。
我需要相同的目录而不是文件。你能用同样的方法来实现这个目标吗?
答案 0 :(得分:6)
我想知道,有多少人能想出C:\Users\xyz\project\..\other\abc.txt
之类的路径,但我们走了:
SET "absPath=C:\Users\xyz\project\..\other\abc.txt"
for %%i in ("%absPath%") do SET "absPathClean=%%~fi"
echo %absPathClean%
适用于文件和文件夹。
有关详细信息,请参阅for /?