如何在Windows批处理文件所在的目录中执行程序?

时间:2010-04-28 15:02:52

标签: windows batch-file path relative-path

我在同一个文件夹中有一个.bat和一个.exe文件。 我无法从.exe调用.bat文件,除非我将完整的绝对路径放入其中。 有没有办法不指定路径?

2 个答案:

答案 0 :(得分:131)

尝试使用.exe调用%~dp0,如下所示:%~dp0MyProgram.exe

%0包含被调用.bat文件的完整路径。

~dp表示要获取驱动器和路径,包括尾随\

答案 1 :(得分:19)

我通过在脚本开头使用pushd更改工作目录来解决此问题,并使用popd恢复脚本的末尾。这样,您始终可以假定工作目录与bat文件的位置相同。

pushd %~dp0
ProgramInSameFolderAsBat.exe
popd