如何执行与windows批处理文件相同的目录中的程序?
我在同一个文件夹中有一个.bat
和一个.exe
文件。 我无法拨打.bat
中的.exe
文件,除非我将完整的绝对路径指向它。 有没有办法不指定路径?如何执行与windows批处理文件相同的目录中的程序?
尝试拨打.exe
与%~dp0
,如下所示:%~dp0MyProgram.exe
。
%0
包含被调用.bat
文件的完整路径。
~dp
说得到驱动器和路径,包括尾随\
。
似乎很奇怪?我没有工作在Windows上的某个时候,但
你尝试用./
./program.exe
确实应该是没有区别领先?也许蝙蝠是从C:\ Windows的上下文执行的,或者你的批处理是否在某个点执行了任何cd操作?
你的意思是\(即反斜杠)。 – 2010-04-28 15:09:32
我认为当我执行批处理时,它正从另一个目录执行。 – 2010-04-28 15:11:04
也许我的问题是“如何双击一个批处理文件并使其在同一个目录下执行?” – 2010-04-28 15:11:45
+1票 刚刚在谷歌搜索 - http://weblogs.asp.net/whaggard/archive/2005/01/28/get-directory-path-of-an-executing-batch-file上找到此链接。 aspx – house9 2010-04-28 15:17:54
很好的解释,谢谢! – enderland 2013-01-22 22:36:33
Patrick Cuff上面的答案是有效的,但如果目录路径的一部分名称中有空格,则会失败。为了解决这个问题,你需要在.exe调用中加双引号。 “%〜dp0MyProgram.exe” – 2013-02-05 17:50:49