如何将 DOS 批处理文件中的相对路径转换为完全限定路径?
我正在编写一个批处理文件,该文件在相对于传递到批处理文件的第一个参数指定的文件夹中执行许多操作。在批处理文件中,我想向用户回显我正在工作的文件夹。但是,每次我回显路径时,它都会包含我用来确定文件夹放置位置的 ....\ 。例如。
set TempDir=%1\..\Temp
echo %TempDir%
因此,如果我使用参数 \FolderA
运行批处理文件,则 echo 语句的输出为 FolderA\..\Temp
而不是 \Temp
代码> 正如我所期望的那样。
I am writing a batch file that does a number of operations in a folder that is specified relative to the first argument passed in to the batch file. Within the batch file, I would like to echo to the user the the folder I am working in. However, every time I echo the path, it contains the ....\ that I used to determine where to place my folder. For example.
set TempDir=%1\..\Temp
echo %TempDir%
So, if I run my batch file with a parameter \FolderA
, the output of the echo statement is FolderA\..\Temp
instead of \Temp
as I would expect.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
:normalise
子例程使用%~f1
表达式将相对路径转换为完整路径并将其存储回TempDir
。更新
或者,您可以使用 FOR 循环,如下所示:
The
:normalise
subroutine uses the%~f1
expression to transform the relative path into the complete one and store it back toTempDir
.UPDATE
Alternatively, you could use a FOR loop, like this: