अन्य सभी उत्तर सही हैं: कॉल का उपयोग करें। उदाहरण के लिए:
call "msbuild.bat"
इतिहास
प्राचीन डॉस संस्करणों में बैच फ़ाइलों को पुनरावर्ती रूप से निष्पादित करना संभव नहीं था। फिर कॉल कमांड पेश की गई जिसे बैच फ़ाइल को निष्पादित करने के लिए एक और cmd शेल कहा जाता है और समाप्त होने पर कॉलिंग cmd शेल पर वापस निष्पादन दिया जाता है।
जाहिर है कि बाद के संस्करणों में अब कोई अन्य cmd शेल आवश्यक नहीं था।
शुरुआती दिनों में कई बैच फाइलें इस बात पर निर्भर करती थीं कि बैच फ़ाइल कॉल करने से कॉलिंग बैच फ़ाइल वापस नहीं आएगी। अतिरिक्त सिंटैक्स के बिना उस व्यवहार को बदलने से बैच मेनू सिस्टम (मेनू संरचनाओं के लिए बैच फ़ाइलों का उपयोग करना) जैसी कई प्रणालियां टूट गई होंगी।
माइक्रोसॉफ्ट के साथ कई मामलों में, पिछड़े संगतता इसलिए इस व्यवहार का कारण है।
टिप्स
यदि आपकी बैच फ़ाइलों में उनके नाम के स्थान हैं, तो नाम के चारों ओर उद्धरण का उपयोग करें:
call "unit tests.bat"
वैसे: यदि आपके पास बैच फ़ाइलों के सभी नाम नहीं हैं, तो आप ऐसा करने के लिए भी उपयोग कर सकते हैं (यह बैच फ़ाइल कॉल के सही क्रम की गारंटी नहीं देता है; यह फ़ाइल सिस्टम के आदेश का पालन करता है);
FOR %x IN (*.bat) DO call "%x"
आप कॉल के बाद त्रुटिपूर्ण पर भी प्रतिक्रिया कर सकते हैं। उपयोग:
exit /B 1 # Or any other integer value in 0..255
एक त्रुटि वापस देने के लिए। 0 सही निष्पादन को दर्शाता है। कॉलिंग बैच फ़ाइल में आप का उपयोग करके प्रतिक्रिया कर सकते हैं
if errorlevel neq 0 <batch command>
if errorlevel 1
यदि आपके पास सभी त्रुटियां 1 और अधिक को पकड़ने के लिए NT4 / 2000 / XP की तुलना में पुराना विंडोज है, तो उपयोग करें ।
बैच फ़ाइल के प्रवाह को नियंत्रित करने के लिए, गोटो है :-(
if errorlevel 2 goto label2
if errorlevel 1 goto label1
...
:label1
...
:label2
...
जैसा कि अन्य ने बताया: बैच फ़ाइलों को बदलने के लिए बिल्ड सिस्टम पर एक नज़र है।