start
पहले से ही सही दिशा होनी चाहिए। हालाँकि, /b
इसे उसी कंसोल से जोड़ता है। अब समस्या यह है कि जब कंसोल विंडो बंद हो जाती है, तो इस कंसोल से जुड़ी कोई भी प्रक्रिया भी बंद हो जाएगी।
आप या तो start
बिना उपयोग कर सकते हैं /b
, फिर यह एक नए कंसोल में चलेगा। यदि आप इसे कंसोल विंडो के बिना पृष्ठभूमि में चलाना चाहते हैं, तो आपको वीबीएसस्क्रिप्ट या थर्ड-पार्टी टूल का उपयोग करना होगा: पूरी तरह से छिपे हुए तरीके से एक बैच फ़ाइल चलाएँ
हालाँकि, उस स्थिति में आप stdout / stderr आउटपुट अब नहीं देखेंगे। आप इसे एक फ़ाइल में पुनर्निर्देशित कर सकते हैं, हालांकि इसे cmd /c your_command > stdout.txt 2> stderr.txt
कॉल में लपेटकर और उपरोक्त तरीकों में से एक के माध्यम से इसे शुरू कर सकते हैं (VBScript, तृतीय-पक्ष उपकरण, ...)।
वैकल्पिक रूप से, आप बाहर निकलने से पहले अपनी खुद की कंसोल विंडो भी छिपा सकते हैं। मैंने अभी थोड़ा एक-लाइन प्रोग्राम लिखा है जो वास्तव में ऐसा करता है (स्रोत कोड मूल रूप से है ShowWindow(GetConsoleWindow(), SW_HIDE)
): http://share.cherrytree.at/showfile-24286/hide_current_console.exe
इस तरह, आप उपयोग कर सकते हैं start /b
, और जब आप अपने कंसोल को "बंद" करना चाहते हैं (तकनीकी रूप से इसे छिपाते हैं), तो आप चलाएंगे hide_current_console & exit
जो कंसोल को छिपाएगा और फिर cmd.exe प्रक्रिया को बंद करेगा (न कि अजगर प्रक्रिया को) - एक पंक्ति में, चूंकि आप exit
कंसोल को पहले से ही छिपाए जाने के बाद टाइप नहीं कर सकते हैं ।
hide_current_console
से आता है? एक W10 पीसी पर काम नहीं करता है।