[英]How would I run a batch program from another batch program within its own environment?
我需要運行位於另一個文件夾中的批處理文件,該文件夾必須從另一個批處理文件中調用。
每當我從第一個調用這個批處理文件時,讓我們分別稱它們為Batch_A和Batch_B,第二個嘗試從第一個批處理文件的目錄運行。
Batch_A需要call
或start
Batch_B,但是Batch_B需要像我自己手動雙擊一樣運行。
這是我在第一批結束時的目前所擁有的
start "A thing" "%output%\\thing.bat" /b
你有沒有看過推或彈。
在調用第二個批處理文件之前,輸入“push”命令:
pushd%dynamicdirectory%
調用batchfileb.bat
POPD
如果Batch_B被設計/編寫為始終從它所在的目錄運行,您可能還會考慮修改Batch_B.bat
setlocal
cd /D %0\..
REM your original content
endlocal
在%0中,存儲了批處理文件的路徑。
訣竅是假設%0是一個目錄,然后根據該指令更改一個級別。 使用/ D也可以正確更改驅動器號。
cd命令不關心%0是否真的是一個目錄。 實際上%d甚至不必存在(%0 \\ dummy \\ .. \\ ..也可以)。
setlocal命令用於在Batch_B.bat完成后恢復工作目錄。
我注意到在這種情況下,endlocal命令並不是必需的,因為當Batch_B完成時它會被立即應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.