बैच फ़ाइल निष्पादन के बाद cmd विंडो को स्वचालित रूप से कैसे बंद करें?


90

मैं एक बैच फ़ाइल चला रहा हूँ जिसमें ये दो पंक्तियाँ हैं:

start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

इस बैच फ़ाइल का उपयोग Xming एप्लिकेशन और उसके बाद PuTTY ऐप को चलाने के लिए किया जाता है ताकि मैं अपने विश्वविद्यालय के कंप्यूटर लैब में SSH कर सकूं।

हालाँकि, अगर मैं इसे चलाता हूं और Xming पहले से खुला नहीं है, एक बार जब मैं PuTTY टर्मिनल से बाहर निकलता हूं तो cmd विंडो खुली रहती है। केवल तभी जब मैंने Xming पहले ही चला लिया है जब मैं PuTTY टर्मिनल बंद करता हूं तो cmd विंडो बंद हो जाती है। मैंने exitबैच फ़ाइल की अंतिम पंक्ति में जोड़ने की कोशिश की है , लेकिन कोई फायदा नहीं हुआ।


1
है "C:\Program Files (x86)\Xming\Xming.exe"putty.exe से एक पैरामीटर है, या एक अलग आदेश?
बपतिस्मा

यदि दूसरी पंक्ति एक दूसरी कमांड है, तो उससे पहले भी शुरुआत को जोड़ने का प्रयास करें।
ग्रे

1
@BernhardPoiss यह एक अलग कमांड है, putty.exe के लिए कोई पैरामीटर नहीं है। अगर मैं उस लाइन को सबसे पहले रखता हूं, तो यह लटकता है और खुली पुट्टी करता है। अगर मैं इसके सामने शुरू करता हूं, तो विंडोज़ कहती है कि "C: \ Program 'नहीं ढूँढ सकता। कृपया सुनिश्चित करें कि यह सही प्रकार है।
yiwei

जवाबों:


136

बैच STARTप्रोग्राम को दोनों प्रोग्राम में बदलें , STARTएक आईएनजी के बजाय एक और CALLआईएनजी

start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

यदि आप इसे इस तरह चलाते हैं, तो कोई भी सीएमडी विंडो प्रोग्राम शुरू करने के बाद खुली नहीं रहेगी।


29
+1 को छोड़कर जब आप पथ के लिए दोहरे उद्धरण चिह्नों का उपयोग करते हैं तो आपको ""शीर्षक के पहले पैरामीटर को जोड़ना होगा । दूसरा कमांड होना चाहिए start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindowअन्यथा यह मापदंडों के साथ C:\Program Files (x86)\Xming\Xming.exeनिष्पादित करने के लिए शीर्षक से एक कमांड विंडो खोलने की कोशिश करेगा:0-clipboard -multiwindow
पैट्रिक माइनके

इसके अलावा, यह start /B "GCFScape" "x64\GCFScape.exe">nulउदाहरण मेरे लिए उपयोगी था
xacinay

4
"यदि कमांड एक आंतरिक cmd कमांड या बैच फ़ाइल है तो कमांड प्रोसेसर cmd.exe पर / K स्विच के साथ चलाया जाता है। इसका मतलब है कि कमांड चलने के बाद विंडो बनी रहेगी।" ss64.com/nt/start.html
सीएडी

3
@CADbloke आपका उल्लेख समस्या का उपयोग कर हल किया जा सकताcmd.exe /C "start cmd.exe /C [...].bat ..."
Thorsten Schöning

1
@ patrick-meinecke "" के बारे में टिप्पणी जोड़ने के लिए धन्यवाद, मुझे निराशा हुई कि इससे मुझे परेशानी हो रही थी। मैंने आपको टिप्पणी पढ़ी और एक आह हा क्षण आया।
माइकल एकिंस

21

आप आम तौर पर एक बैच फ़ाइल को एक पंक्ति के साथ समाप्त करते हैं जो बस कहती है exit। यदि आप यह सुनिश्चित करना चाहते हैं कि फ़ाइल चल चुकी है और DOS विंडो 2 सेकंड के बाद बंद हो जाती है, तो आप लाइनें जोड़ सकते हैं:

timeout 2 >nul
exit

लेकिन exitकमांड तब काम नहीं करेगा जब आपकी बैच फ़ाइल दूसरी विंडो खोलेगी, क्योंकि कभी भी दूसरी विंडो खुली होने पर पुरानी डॉस विंडो भी प्रदर्शित होगी।

समाधान: उदाहरण के लिए BgInfo नामक एक बहुत कम मुफ्त कार्यक्रम है जो आपके कंप्यूटर के बारे में सभी जानकारी प्रदर्शित करेगा। इसे एक निर्देशिका में कहा जाता है C:\BgInfo, इसे /popupस्विच के साथ बैच फ़ाइल से चलाने के लिए और डॉस विंडो को बंद करने के लिए, जबकि यह अभी भी उपयोग करता है:

start "" "C:\BgInfo\BgInfo.exe" /popup
exit

होने /popupवास्तव में मुझे एक त्रुटि दे रहा था। इसे हटाने के बाद सभी ने काम किया
दिमित्री एफिमेंको

5

यदि आप आदेशों को प्रति फ़ाइल एक कमांड में अलग करना चाहते हैं, तो आप कर सकते हैं

cmd /c start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"

और दूसरी फाइल में, आप कर सकते हैं

cmd /c start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Exe चलाने के बाद कमांड cmd / c कमांड-प्रॉम्प्ट विंडो को बंद कर देगा।


3

इसने मेरे लिए काम किया। मैं गेम से बाहर निकलने के बाद स्वचालित रूप से कमांड विंडो को बंद करना चाहता था। मैं सिर्फ अपने डेस्कटॉप पर .bat फ़ाइल पर डबल क्लिक करता हूं। कोई शॉर्टकट नहीं।

taskkill /f /IM explorer.exe
C:\"GOG Games"\Starcraft\Starcraft.exe
start explorer.exe
exit /B

1

मेरे पास यह था, मैंने जोड़ा EXITऔर शुरू में यह काम नहीं किया था, मुझे लगता है कि called program exitingयहां एक और प्रतिक्रिया में उल्लिखित सलाह की आवश्यकता है, हालांकि अब यह आगे की हलचल के बिना काम करता है - निश्चित रूप से इसका कारण नहीं है, लेकिन ध्यान देने वाली बात यह है कि मैं हूं कोई डेटा फ़ाइल बुला .htmlके बजाय प्रोग्राम है जो हैंडल यह browser.exe, मैं और नहीं संपादित कुछ भी किया था, लेकिन यह यह बहुत neater सिर्फ उन वेब दस्तावेज़ों के मुख्य पृष्ठों पर पहुंचने तक पहुँचने के लिए एक बल्ला फ़ाइल का उपयोग है और केवल होने कहने के लिए पर्याप्त title.bat, contents.bat,index.bat रूट फ़ोल्डर में एक सबफ़ोल्डर में बाकी सामग्री के साथ।

यानी: content.bat पढ़ता है

cd subfolder
"contents.html"
exit

यह भी बेहतर लगता है कि अगर मैं उन वस्तुओं के संदर्भ में सूट करने के लिए बैट फाइल आइकन बदल देता हूं, तो वे भी उसी स्थिति में हैं, लेकिन यह एक और मामला है, सबफ़ोल्डर में बैट फ़ाइलों को छुपाना और छवियों के साथ रूट फ़ोल्डर में उनके लिए कस्टम आइकन शॉर्टकट बनाना अनुकूलन के लिए भी छिपाया गया।


1

आप कुछ खतरनाक कोशिश कर सकते हैं: taskkill /IM cmd.exe .. bcz जो कि cmd को मार देगा जो कि खुला है और इससे पहले किसी भी cmd को खोला गया है।

या पुष्टि करने के लिए एक सत्यापन जोड़ें कि आपके पास सही cmd.exe था और फिर PID के माध्यम से इसे मारें, जैसे कि:

set loc=%time%%random%
title=%loc%
for /f "tokens=2 delims= " %%A in ('tasklist /v ^| findstr /i "%loc%"') do (taskkill /PID %%A) 

स्थानापन्न (pslist &&A)या (tasklist /FI "PID eq %%A")के लिए (taskkill /PID %%A)आपको सबसे पहले यह जाँच करना चाहते हैं (और शायद pstools स्थापित किया है)।


0

बस /sनीचे सूचीबद्ध के रूप में प्रयास करें।

बैच फ़ाइल प्रकार में अंतिम पंक्ति के रूप में:

exit /s

उपरोक्त कमांड विंडोज सीएमडी विंडो को बंद कर देगी।

/s - (यह कीबोर्ड से इनपुट के लिए इंतजार करेगा) के रूप में मौन के लिए खड़ा है।


1
cmdके बाहर निकलने के आदेश एक नहीं है /sस्विच (और यह व्यर्थ वैसे भी होगा)
स्टीफ़न

-1

निष्पादन कोड के अंत में इस कोड को जोड़ें

c: \ windows> बाहर निकलने


1
क्या आपने प्रश्न का अंतिम वाक्य पढ़ा है ?: I've tried adding exit to the last line of the batch file, but to no avail.
स्टीफन

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