บรรทัดคำสั่ง - ไฟล์แบตช์เรียกไฟล์แบตช์อื่น


13

ฉันมีไฟล์แบตช์ซึ่งเรียกไฟล์แบตช์อื่นที่มีอยู่ในไดเรกทอรี PATH (โดยทั่วไปเรียกการปฏิบัติการด้วยสวิตช์เพิ่มเติม)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

ใน foo.bat:

foo.exe -t -s %1

bar.batเรียกใช้งานคำสั่งแรก แต่ออกอย่างสุดขั้ว (เช่นทำงานกับfile1.txtเท่านั้น)

ฉันจะทำให้ไฟล์แบตช์นี้เรียกใช้ไฟล์แบตช์อื่นมากกว่าหนึ่งครั้งได้อย่างไร

คำตอบ:


14

ใช้คำหลัก CALL:

call foo.bat file1.txt
call foo.bat file2.txt

1
<คัดลอกมาจากคำตอบของดันแคนสมาร์ทเพื่อรวมเข้าด้วยกัน> นอกเหนือจากคำตอบของ @ splattne ให้ใช้ exit / b ในไฟล์แบทช์ CALLed หากคุณต้องการกลับก่อน
แบรดบรูซ

1
นอกจากนี้คุณยังสามารถใช้goto :eofเพื่อกลับก่อน exit /bโดยปกติจะต้องใช้เมื่อคุณต้องการรหัสส่งคืนเท่านั้น
Joey

ฉันทำไม่ได้ทำไม แต่ฉันกำลังดิ้นรนเพื่อให้ได้งานนี้ผมได้พยายามทั้งสองและexit /b goto: eofมันโอเคที่จะต่อท้ายเอาต์พุตของ CALLed bat หรือไม่? call foo.bat > myfile
SSH


2

ตัวเลือกอื่น (สำหรับความเข้ากันได้กับ DOS ก่อนหน้ารุ่น 3.3 :-)) คือการเรียกกระบวนการคำสั่งพร้อมกับตัวเลือกลูก (/ c) และชื่อของไฟล์แบตช์อื่นที่ต้องการดำเนินการ มันจะทำการโทรแทนสายโซ่และจะทำงานกับเครื่องจักรโบราณอย่างแท้จริง (ในกรณีที่มีคนวิ่งข้ามสิ่งนี้และใส่ใจ) :-)


0

@ ปิดเสียง

echo WbLegalReport.cmd

ผม:

cd I: \ CFS \ Batch \ jarDir

echo% CD%

WbLegalReport.cmd

echo% CD%

echo WatchResrAddDeleted.cmd

echo% CD%

WatchRestrAddDeleted.cmd

echo% CD%

สิ่งที่ฉันพยายามทำที่นี่เรียกไฟล์แบทช์ทั้งสองนี้ตามลำดับ

ไม่สามารถทำได้

ช่วยด้วย.

โดยปกติแล้วจะมีความล้มเหลวที่สคริปต์ลูกเนื่องจากตัวควบคุมจะไม่กลับไปที่สคริปต์หลัก


0

ถัดไป, ไม่เรียกแฟ้มแบตช์โดยตรง. ใช้คำสั่ง "CALL" ดูตัวอย่างของsplattne

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.