Windows
呼叫批處理文件並使用自己的路徑/目錄執行
我有一個批處理文件,它呼叫其他批處理文件,如下所示:
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 變數包含一個尾部斜杠。)這將告訴批處理文件從目前批處理文件的位置執行執行檔。