如何在MS-DOS中获取当前运行的批处理作业的路径?

时间:2011-07-05 10:31:07

标签: java windows dos

我在目录foo.bar中有一个批d:\progs\ 在这个目录中,我有一个名为bar.jar的jar文件 我已将d:\progs\添加到我的Path环境变量中。

现在我做cd c:\anotherdir。 在这个新目录中我做foo -v。但是我收到以下错误: Unable to access jarfile bar.jar

我怎样才能获得foo.bar的当前路径,因为%CD%返回c:\anotherdir

2 个答案:

答案 0 :(得分:2)

您正在寻找的代码段是%~dp0。它会为您提供path of the currently running batch job

这也有一个优点,允许您从任何位置运行命令,而在批处理脚本开头捕获%CD%将捕获您启动批处理脚本时所在的目录。 (如果这是您想要做的事情,那么,这将是Richard所建议的首选解决方案。)

答案 1 :(得分:0)

  

我已将d:\ progs \添加到我的Path环境变量中。

这只影响启动程序,它对传递给程序的参数(例如数据文件和文档)没有帮助。

  

我怎样才能获得foo.bar的当前路径,因为%CD%返回c:\ anotherdir?

使用%CD%捕获当前文件夹,从而在更改目录之前构建数据文件的路径