【发布时间】:2018-07-23 15:53:15
【问题描述】:
有没有办法从绝对文件路径批量解析..?例如,下面的批处理脚本应该输出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 变量引用现有文件。
我需要相同的目录而不是文件。你能用同样的方法来实现吗?
【问题讨论】:
-
这不是我所说的绝对路径,而是相对路径!我想您应该澄清最终用户系统上是否存在给定的文件路径。 (如果不是,即只是一个字符串,答案可能完全不同!)
-
@Compo 我认为相对路径和绝对路径之间的区别如下:相对路径从工作目录开始,绝对路径从文件系统根目录开始。我的路径是绝对的,因为它以
C:开头。我认为你的意思是所谓的规范化路径。 -
您所要做的就是在您给出的示例中从路径中删除“\project\..”?
-
我建议使用
%~1和%~2来删除最终包围的引号(需要引号以提供带有空格作为 one 参数的路径或文件名)。跨度>
标签: windows batch-file