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

发布于 2024-11-18 18:25:48 字数 349 浏览 4 评论 0原文

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

现在我执行cd c:\anotherdir。 在这个新目录中,我执行foo -v。但我收到以下错误: 无法访问 jarfile bar.jar

由于 %CD% 返回 c:\anotherdir ,我如何获取 foo.bar 的当前路径?

I have a batch foo.bar in a directory d:\progs\.
In this directory I have a jar file called bar.jar.
I have added d:\progs\ to my Path environment variable.

Now i do cd c:\anotherdir.
In this new dir i do foo -v. But i get the following error :
Unable to access jarfile bar.jar

How can i get the current path of foo.bar since %CD% returns c:\anotherdir ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

物价感观 2024-11-25 18:25:49

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

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

由于 %CD% 返回 c:\anotherdir ,我如何获取 foo.bar 的当前路径?

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

I have added d:\progs\ to my Path environment variable.

That only affects launching programs, it doesn't help with arguments (eg. data files and documents) passed to the program.

How can i get the current path of foo.bar since %CD% returns c:\anotherdir ?

Use %CD% to capture the current folder, and thus build the data file's path before changing directory.

相思故 2024-11-25 18:25:48

您要查找的代码段是%~dp0。它为您提供 当前运行的批处理作业的路径

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

The code snippet you're looking for is %~dp0. It gives you the path of the currently running batch job.

This also has the advantage of allowing you to run the command from any location, whereas capturing %CD% in the beginning of your batch script will capture the directory that you were in when you started the batch script. (If this is what you want to do, however, that would be the preferred solution, as suggested by Richard.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文