समानांतर में बैच फ़ाइलों को चलाते समय मैंने यही पाया है (विभिन्न इनपुट मापदंडों के साथ एक ही समय में एक ही बैट फ़ाइल के कई उदाहरण):
कहते हैं कि आपके पास एक exe फ़ाइल है जो LongRunningTask.exe नामक एक लंबा कार्य करती है
यदि आप exe को सीधे बैट फ़ाइल से कॉल करते हैं, तो केवल LongRunningTask पर पहला कॉल सक्सेस होगा, जबकि बाकी को OS एरर मिलेगा "फाइल प्रोसेस के द्वारा पहले से ही उपयोग में है"
यदि आप इस कमांड का उपयोग करते हैं:
प्रारंभ / B / WAIT "" "LongRunningTask.exe" "पैरामीटर"
आप बल्ले के कई उदाहरणों को चलाने में सक्षम होंगे, जबकि अभी भी कार्य समाप्त होने तक प्रतीक्षा करने से पहले बल्ले को शेष कमांडों को निष्पादित करना जारी रहेगा। / B विकल्प दूसरी विंडो बनाने से बचने के लिए है, काम करने के लिए खाली कोट्स की जरूरत है, नीचे संदर्भ देखें।
ध्यान दें कि यदि आप प्रारंभ में / WAIT का उपयोग नहीं करते हैं, तो LongRunningTask बैच फ़ाइल में शेष कमांड की तुलना में एक ही समय में निष्पादित किया जाएगा, इसलिए यह समस्या पैदा कर सकता है यदि इनमें से किसी एक कमांड को LongRetTask के आउटपुट की आवश्यकता होती है
फिर से शुरू:
यह समानांतर में नहीं चल सकता:
- LongRunningTask.exe पर कॉल करें
यह समानांतर में चलेगा और ठीक रहेगा जहां तक कमांड के आउटपुट और बाकी बैट फाइल के बीच कोई डेटा निर्भरता नहीं है:
- start / B "" "LongRunningTask.exe" "पैरामीटर"
यह समानांतर में चलेगा और कार्य समाप्त होने की प्रतीक्षा करेगा, इसलिए आप आउटपुट का उपयोग कर सकते हैं:
- प्रारंभ / B / WAIT "" "LongRunningTask.exe" "पैरामीटर"
स्टार्ट कमांड का संदर्भ: मैं प्रोग्राम शुरू होने के बाद कंसोल को खुले बिना बैच फ़ाइल से प्रोग्राम कैसे चला सकता हूं?