调用批处理文件并使用其自己的路径/目录运行

Omu*_*Omu 16 windows batch-file batch windows-command-prompt

我有一个批处理文件,可以像这样调用其他批处理文件:

e:\foo\master.bat 有内容:

call e:\bar\run1.bat 
Run Code Online (Sandbox Code Playgroud)

e:\bar\run1.bat有内容

app1.exe
Run Code Online (Sandbox Code Playgroud)

问题是当我运行master.bat app1.exe时不会被执行,因为它会期望它在e:\foo目录中而不是在e:\bar目录中

小智 17

您有点不清楚 app1.exe 所在的位置。

如果它与 run1.bat 共享文件夹,请更改 run1.bat

要么

@Echo off
Pushd "%~dp0"
app1.exe
popd
Run Code Online (Sandbox Code Playgroud)

或者

@Echo off
"%~dp0app1.exe"
Run Code Online (Sandbox Code Playgroud)

%0指的是当前正在运行的批处理,修饰符~dp返回驱动器和路径(带有尾部反斜杠。)