批量标准化文件路径

时间:2018-02-13 10:04:32

标签: windows batch-file

有没有办法从批处理中的绝对文件路径解析..?例如,以下批处理脚本应输出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变量引用现有文件。

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

1 个答案:

答案 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 /?