मुझे एक के बाद एक से अधिक प्रोग्राम चलाने की ज़रूरत है और वे प्रत्येक कंसोल विंडो में चलते हैं। मैं कंसोल विंडो दिखाना चाहता हूं, लेकिन प्रत्येक प्रोग्राम के लिए एक नई विंडो बनाई गई है। यह कष्टप्रद है क्योंकि प्रत्येक खिड़की को एक नई स्थिति में खोला जाता है जहां से दूसरा बंद होता है और ग्रहण में काम करते समय फोकस करता है।एक विंडोज कमांड प्रॉम्प्ट में अनुक्रमिक रूप से एकाधिक प्रोग्राम चलाएं?
def runCommand(self, cmd, instream=None, outstream=None, errstream=None):
proc = subprocess.Popen(cmd, stdin=instream, stdout=outstream, stderr=errstream)
while True:
retcode = proc.poll()
if retcode == None:
if mAbortBuild:
proc.terminate()
return False
else:
time.sleep(1)
else:
if retcode == 0:
return True
else:
return False
मैं जब subprocess.Popen कॉलिंग का उपयोग करके 'cmd' एक कमांड प्रॉम्प्ट खोलकर और फिर proc.stdin.write बुला में स्विच (b'program.exe:
यह प्रारंभिक कोड मैं उपयोग कर रहा था है \ r \ n ')। ऐसा लगता है कि एक कमांड विंडो समस्या हल हो रही है लेकिन अब मैं यह नहीं बता सकता कि पहला प्रोग्राम कब किया जाता है और मैं दूसरा शुरू कर सकता हूं। मैं दूसरे प्रोग्राम को चलाने से पहले पहले प्रोग्राम से लॉग फ़ाइल को रोकना और पूछताछ करना चाहता हूं।
कोई सुझाव यह है कि मैं इसे कैसे प्राप्त कर सकता हूं? क्या एक खिड़की में प्रोग्राम चलाने के लिए कोई दूसरा विकल्प है जो मुझे अभी तक नहीं मिला है?
यह लगभग काम करेगा। मैंने अनिवार्य रूप से एक कमांड प्रॉम्प्ट पर लिखकर वही किया है जिसे मैंने स्वयं खोला है। लेकिन समस्या यह है कि पहले आदेश के बाद मैं रुक नहीं सकता, लॉग फ़ाइल का निरीक्षण करता हूं, और फिर अगले कमांड पर जाता हूं। – Sean
@ सेन: ऐसा लगता है कि आप अपने आदेशों के आमंत्रणों को घुमा सकते हैं, जिसने आपको लॉग फ़ाइल का निरीक्षण करने और निकास कोड निर्धारित करने की अनुमति दी है, जिसे बैच फ़ाइल का निरीक्षण कर सकते हैं और यह निर्धारित करने के लिए उपयोग किया जा सकता है कि 'बाहर निकलना' या जारी रखना है या नहीं। बैच प्रोग्राम 'अगर [त्रुटि] त्रुटि नहीं ...' सशर्त प्रसंस्करण का समर्थन करते हैं। यदि आप रुचि रखते हैं तो मैं यह दिखाने के लिए अपना उत्तर अपडेट कर सकता हूं कि यह कैसे किया जा सकता है। – martineau
धन्यवाद मार्टिनौ। मैंने एररलेवल और बैच फ़ाइलों पर त्वरित खोज की और इसे पाया। सहायता के लिए धन्यवाद! – Sean