Câu trả lời:
Sử dụng CALLnhư trong
CALL nameOfOtherFile.bat
Thao tác này sẽ chặn (tạm dừng) việc thực thi tệp lô hiện tại và nó sẽ đợi cho đến khi CALLchỉnh sửa hoàn tất.
Nếu bạn không muốn nó chặn, hãy sử dụng STARTthay thế.
Nhận chi tiết nitty-gritty bằng cách sử dụng CALL /?hoặc START /?từ dấu nhắc cmd.
Bạn chỉ có thể gọi tập lệnh lô theo tên, như thể bạn đang chạy trên dòng lệnh.
Vì vậy, giả sử bạn có một tệp bar.batcho biết echo This is bar.bat!và bạn muốn gọi nó từ một tệp foo.bat, bạn có thể viết điều này trong foo.bat:
if "%1"=="blah" bar
Chạy foo blahtừ dòng lệnh và bạn sẽ thấy:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Nhưng hãy cẩn thận : Khi bạn gọi một tập lệnh lô từ một tập lệnh loạt khác, tập lệnh loạt ban đầu sẽ ngừng chạy. Nếu bạn muốn chạy tập lệnh lô thứ cấp và sau đó quay lại tập lệnh lô trước đó, bạn sẽ phải sử dụng calllệnh. Ví dụ:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Nếu bạn chạy foo blahtrên đó, bạn sẽ thấy:
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
Bạn nên sử dụng CALL
CALL batch.bat
Nếu bạn muốn mở tệp loạt trong một cửa sổ khác, hãy sử dụng start. Bằng cách này, về cơ bản bạn có thể chạy hai tập lệnh cùng một lúc. Nói cách khác, bạn không phải đợi tập lệnh bạn vừa gọi kết thúc. Tất cả các ví dụ dưới đây đều hoạt động:
start batch.bat
start call batch.bat
start cmd /c batch.bat
Nếu bạn muốn đợi tập lệnh kết thúc, hãy thử start /w call batch.bat, nhưng batch.bat phải kết thúc bằng exit.
dayStart.bat
start "startOfficialSoftwares" /min cmd /k call startOfficialSoftwares.bat
start "initCodingEnvironment" /min cmd /k call initCodingEnvironment.bat
start "updateProjectSource" /min cmd /k call updateProjectSource.bat
start "runCoffeeMachine" /min cmd /k call runCoffeeMachine.bat
release.bat
call updateDevelVersion.bat
call mergeDevelIntoMaster.bat
call publishProject.bat
huh, tôi không biết tại sao, nhưng cuộc gọi không thực hiện được thủ thuật
call script.batkhông quay lại bảng điều khiển ban đầu.
cmd /k script.batđã quay trở lại bảng điều khiển ban đầu.
call, tập lệnh sẽ tiếp tục thực thi ngay cả khi có lỗi trong tập lệnh được gọi.