簡體   English   中英

如何在其自己的環境中從另一個批處理程序運行批處理程序?

[英]How would I run a batch program from another batch program within its own environment?

我需要運行位於另一個文件夾中的批處理文件,該文件夾必須從另一個批處理文件中調用。

每當我從第一個調用這個批處理文件時,讓我們分別稱它們為Batch_A和Batch_B,第二個嘗試從第一個批處理文件的目錄運行。

Batch_A需要callstart 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM