Windows

呼叫批處理文件並使用自己的路徑/目錄執行

  • January 18, 2021

我有一個批處理文件,它呼叫其他批處理文件,如下所示:

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

call e:\bar\run1.bat 

並且e:\bar\run1.bat有內容

app1.exe

問題是當我執行master.bat app1.exe時不會執行,因為它會期望它在e:\foo目錄中而不是在e:\bar目錄中

您有點不清楚 app1.exe 的位置。

如果它與 run1.bat 共享文件夾,則更改 run1.bat

要麼

@Echo off
Pushd "%~dp0"
app1.exe
popd

或者

@Echo off
"%~dp0app1.exe"

%0指目前正在執行的批處理,並且修飾符~dp返回驅動器和路徑(帶有尾部反斜杠。)

您的問題的答案可以從 Stack Overflow 上的一個類似問題中得出。

批處理文件中的目前目錄是什麼?

使用此處提到的變數,您可以更新 run1.bat 以使用以下行呼叫 app1.exe:%~dp0app1.exe。(%~dp0 變數包含一個尾部斜杠。)這將告訴批處理文件從目前批處理文件的位置執行執行檔。

引用自:https://serverfault.com/questions/914632