Cmd / c से पहले लिखने पर कमांड एक बैच फ़ाइल में ही चलती है


1

मैं निम्नलिखित कमांड चला रहा हूं

rabbitmq-server.bat" -detached

यह कमांड बैकग्राउंड में एक सर्वर चलाता है। जब मैं इसे बैच फ़ाइलों से चलाता हूं - प्रवाह बंद हो जाता है और बाद में बैच में आदेश चलना बंद हो जाता है।

  1. क्यूं कर?
  2. उन प्रकार के कमांड चलाने का सबसे अच्छा तरीका क्या है?
  3. उन्हें cmd ​​/ c के साथ चलाने से काम चल जाता है लेकिन मैं उन सभी कमांड के लिए नहीं

जवाबों:


1

यह वह गलत व्यवहार है जो Microsoft के CMD, Microsoft के COMMAND के शुरुआती संस्करणों में वापस आने के लिए बैकवर्ड संगतता के लिए बरकरार रखता है। यदि एक कमांड स्क्रिप्ट दूसरी कमांड स्क्रिप्ट चलाती है, तो पहली कमांड स्क्रिप्ट रद्द हो जाती है।

इसके चारों ओर जाने का रास्ता है call अंतर्निहित कमांड। बस के साथ कमांड स्क्रिप्ट उपसर्ग call। यह उस व्यवहार को उत्पन्न करता है जिसे आप, और मैं अधिकांश लोगों पर संदेह करते हैं, अपेक्षा करते हैं: कॉलिंग कमांड स्क्रिप्ट निष्पादन को फिर से शुरू करती है जब बुलाया कमांड स्क्रिप्ट समाप्त हो जाती है।

आप भी उपयोग कर सकते हैं cmd /c, लेकिन ध्यान दें कि यह एक ही बात नहीं है। call एक ही कमांड दुभाषिया के भीतर सिर्फ घोंसले के आदेश स्क्रिप्ट। cmd /c एक अतिरिक्त नई कमांड इंटरप्रेटर उप-प्रक्रिया शुरू करता है। चर में किए गए परिवर्तन, कार्यशील निर्देशिका, खुली फ़ाइल हैंडल, और उप-प्रक्रिया में इस तरह इसके माता-पिता को प्रभावित नहीं करेगा। इसके विपरीत, call पोर्टेबल है, एक को प्रतिस्थापन कमांड दुभाषियों का उपयोग करना चाहिए, जबकि cmd एक विशिष्ट कमांड दुभाषिया से संबंध रखता है।

आगे की पढाई

  • जेपी सॉफ्टवेयर। कॉल । कमांड / टीसीसी सहायता लें।
  • "कॉल" Windows XP कमांड-लाइन संदर्भ A-Z। TechNet। माइक्रोसॉफ़्ट कॉर्पोरेशन।

0

यह शायद "Start.exe" का उपयोग करने के लिए एक मामला है

प्रारंभ आपको एक अलग विंडो में सर्वर प्रक्रिया शुरू करने और इसे चालू छोड़ने की अनुमति देगा।

मूल बैच स्क्रिप्ट तब सर्वर प्रक्रिया समाप्त होने की प्रतीक्षा किए बिना स्क्रिप्ट में कमांड निष्पादित करना जारी रखेगी।

हालांकि वे आदेश अलग से चलने वाली प्रक्रिया को प्रभावित नहीं करते हैं, हालांकि जैसा कि संभावना है कि आप कुछ कमांड का उपयोग कर सकते हैं जो कि रनिंग MQ सर्वर के साथ बैच स्क्रिप्ट के निम्नलिखित भाग में बातचीत करने के लिए हैं और वे सही ढंग से कार्य करेंगे।

जब तक आप उस समय से पर्याप्त लंबाई के ठहराव में लगाते हैं जब तक कि कमांड कमांड उस समय तक निष्पादित नहीं हो जाता है जब तक क्लाइंट सर्वर को खरगोश के सर्वर को पूरी तरह से तुरंत भेजने के लिए पर्याप्त समय दिया जाता है। (यह एक विराम के साथ किया जा सकता है जिसे आप मैन्युअल रूप से जारी रखने के लिए एंटर करते हैं या टाइमर रखने के लिए पिंग करते हैं।)

"प्रारंभ" के बिना "CALL" या "CMD / C" का उपयोग करने से बैच स्क्रिप्ट का इंतजार होगा जब तक कि आप जारी रखने से पहले RabitMQ सर्वर कमांड के निष्पादन को समाप्त नहीं कर देते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.