【问题标题】:How can I convert a relative path to a fully qualified path in a DOS batch file?如何将相对路径转换为 ​​DOS 批处理文件中的完全限定路径?
【发布时间】:2011-09-29 07:28:02
【问题描述】:

我正在编写一个批处理文件,该文件在相对于传入批处理文件的第一个参数指定的文件夹中执行许多操作。在批处理文件中,我想向用户回显我正在使用的文件夹。但是,每次我回显路径时,它都包含 ....\ 我用来确定放置文件夹的位置。例如。

set TempDir=%1\..\Temp
echo %TempDir%

因此,如果我使用参数\FolderA 运行批处理文件,则回显语句的输出是FolderA\..\Temp,而不是我所期望的\Temp

【问题讨论】:

标签: batch-file dos relative-path


【解决方案1】:
SET "TempDir=%~1\..\Temp"
CALL :normalise "%TempDir%"
ECHO %TempDir%
…

:normalise
SET "TempDir=%~f1"
GOTO :EOF

…

:normalise 子例程使用%~f1 表达式将相对路径转换为完整路径并将其存储回TempDir


更新

或者,您可以使用 FOR 循环,如下所示:

SET "TempDir=%~1\..\Temp"
FOR /F "delims=" %%F IN ("%TempDir%") DO SET "TempDir=%%~fF"
ECHO %TempDir%

【讨论】:

    猜你喜欢
    • 2012-04-30
    • 2011-01-10
    • 2011-06-25
    • 2010-10-13
    • 2014-01-15
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多