【发布时间】:2010-12-11 09:03:27
【问题描述】:
Windows 批处理脚本中是否有办法从包含文件名和/或相对路径的值返回绝对路径?
鉴于:
"..\"
"..\somefile.txt"
我需要相对于批处理文件的绝对路径。
示例:
- “somefile.txt”位于“C:\Foo\”
- “test.bat”位于“C:\Foo\Bar”。
- 用户在“C:\Foo”中打开一个命令窗口并调用
Bar\test.bat ..\somefile.txt - 在批处理文件中“C:\Foo\somefile.txt”将来自
%1
【问题讨论】:
-
相对路径并不是故事的结局。还要考虑 NTFS 符号链接:很可能您还需要
realpath的类似物来实现稳健的路径规范化。 -
可能您根本不需要确切的路径!您可以只添加一个基本路径:
SET FilePath=%CD%\%1,这样它就可以像C:\Foo\Bar\..\..\some\other\dir\file.txt。程序似乎能理解如此复杂的路径。 -
很多这些答案都过于复杂,或者只是简单的错误——但是,这实际上是一个非常容易批量完成的事情,take a look at my answer below。
标签: windows batch-file relative-path absolute-path