关于windows:批量标准化文件路径

Normalize file path in batch

是否有一种方法可以从批处理中的绝对文件路径解析..?例如,以下批处理脚本应输出C:\Users\xyz\other\abc.txt

1
2
3
4
5
6
7
8
9
10
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变量是指现有文件。

我需要相同的目录而不是文件。你能用同样的方法来实现吗?


我想知道,怎么会有人能想出一条像C:\Users\xyz\project\..\other\abc.txt这样的路,但现在我们开始:

1
2
3
SET"absPath=C:\Users\xyz\project\..\other\abc.txt"
for %%i in ("%absPath%") do SET"absPathClean=%%~fi"
echo %absPathClean%

适用于文件和文件夹。

有关更多信息,请咨询for /?