BAT फ़ाइल के निष्पादन के बाद CMD को खुला रखें


169

मेरे पास इस तरह से एक बैट फाइल है:

ipconfig

यह स्क्रीन के लिए आईपी जानकारी को प्रिंट करेगा, लेकिन इससे पहले कि उपयोगकर्ता पढ़ सकता है कि जानकारी सीएमडी खुद को बंद कर देती है।

मेरा मानना ​​है कि सीएमडी मानता है कि स्क्रिप्ट खत्म हो गई है, इसलिए यह बंद हो गया।

स्क्रिप्ट खत्म होने के बाद मैं CMD को कैसे खुला रख सकता हूं?



4
@RobKielty यह एक ही सवाल है ठीक है - लेकिन यहाँ हमारे पास एक नया उत्तर है (जो बेहतर है IMHO)
अल्फासिन


@alfasin क्या रट्टर निजलिंगन के जवाब के समान नहीं है?
रॉब किटी जूल

@RobKielty नहींं, मेरा उत्तर समान नहीं है क्योंकि यह उपयोग नहीं करता है pauseजो कि एक अच्छा समाधान है (और यही कारण है कि मैंने इस उत्तर को उखाड़ दिया) लेकिन ऐसा नहीं है जो वास्तव में इस मुद्दे को हल करता है क्योंकि उपयोगकर्ता हिट Enterया Spaceविंडो बंद होने के बाद। ..
अल्फासिन

जवाबों:


163

कैसे आप कमांड चला रहे हैं के आधार पर आप रख सकते हैं /kके बाद cmdखिड़की खुली रखने के लिए।

cmd /k my_script.bat

बस cmd /kअपने बैच फ़ाइल के अंत में जोड़ने से भी काम होगा। इसका श्रेय लुइगी डी 'एमिको को दिया गया है जिन्होंने नीचे टिप्पणी में इस बारे में पोस्ट किया है।


14
अपनी बैट फाइल में अपनी सभी स्क्रिप्ट्स के बाद - डाल -> cmd / k
लुइगी डी 'रिको

3
सावधान रहें कि यदि आपके प्रोग्राम में वाक्य-रचना संबंधी त्रुटियां हैं, तो विंडो तब भी बंद रहेगी जब आप इसे डबल-क्लिक करके चलाते हैं और cmd /kअंत में डालते हैं ।
टोबियास फेल

यदि उपयोगकर्ता डबल फ़ाइल पर क्लिक करता है तो यह cmd विंडो को बंद करने की व्याख्या नहीं करता है।
के - एसओ में विषाक्तता बढ़ रही है।

237

pauseअपने .BAT फ़ाइल के अंत में रखें ।


7
यह वही है जो मैं देख रहा था, क्योंकि मैं एक सीएमडी कमांड के माध्यम से स्टार्टअप पर बैट फाइल चला रहा हूं। +1
हकीकी

3
यदि आप अभी भी अपने निष्पादन के बाद बैट फ़ाइल के साथ बातचीत करना चाहते हैं, तो PAUSE को सिर्फ cmd / k से बदलें - फिर आपकी स्क्रिप्ट चलने के बाद, आप अभी भी उसी संदर्भ में बाद में मैनुअल कमांड चला सकते हैं
लुइगी डी 'एमिको

मैं यह देख कर खड़ा नहीं हो सकता कि यह इस प्रश्न के लिए "समाधान" टिप्पणी नहीं थी
न्यूहाउस

57

बस @pauseअंत में जोड़ें ।

उदाहरण:

@echo off
ipconfig
@pause

या आप भी उपयोग कर सकते हैं:

cmd /k ipconfig

5
@ प्रतीक क्या करता है? क्या @ पोज़ और पॉज़ में अंतर है?
डेमोनिकडरन

3
@demonicdaron @ प्रतीक की व्याख्या करते हुए उत्तर: stackoverflow.com/a/21077142/2258
रिचर्ड मॉर्गन

लेकिन इस मामले में, इससे कोई फर्क नहीं पड़ना चाहिए।
फ्लोरियन लेटेजेब

इस उत्तर के बीच अंतर @pauseऔर pauseदेखा जा सकता है: stackoverflow.com/questions/17957076#60053224
ZygD

7

जोड़ा जा रहा है pause समाप्त करने के लिए (विंडोज 7) में मेरे लिए काम नहीं किया
लेकिन जोड़ने cmd /kमेरी आदेश के सामने काम किया है।

उदाहरण :

cmd /k gradlew cleanEclipse

7

जब .bat फ़ाइल को कमांड लाइन के भीतर से शुरू नहीं किया जाता है (जैसे डबल-क्लिक करना)।

echo The echoed text
@pause

at_pause

echo The echoed text
pause

ठहराव

echo The echoed text
cmd /k

सीएमडी के

echo The echoed text & pause

and_pause


3

start cmd /kमेरे लिए जादू किया। मैंने वास्तव में इसे कॉर्डोवा फोनगैप ऐप तैयार करने के लिए इस्तेमाल किया था, यह कमांड चलाता है, परिणाम दिखाता है और उपयोगकर्ता को इसे बंद करने की प्रतीक्षा करता है। नीचे सरल उदाहरण है

start cmd /k echo Hello, World!

मैंने अपने मामले में क्या उपयोग किया

start cmd /k cordova prepare

अपडेट करें

तुम भी इस का उपयोग करके एक शीर्षक हो सकता है

start "My Title" echo Hello, World!


1

यदि आप कमांड लाइन के भीतर स्क्रिप्ट शुरू कर रहे हैं, तो exit /bसीएमडी को खुला रखने के लिए जोड़ें


व्यावहारिक रूप से प्रश्न को हल करने के रूप में हल नहीं करता है ipconfigऔर अन्य अंतर्निहित बैच फाइलें एक बहुत बुरा विचार है
रोबिन्टेक

1

विंडोज में फाइल में अपने कमांड के अंत में 'और पॉज' जोड़ें।


1

मैं भी उलझन में था कि हम cmdशुरुआत में क्यों जोड़ रहे हैं और मैं सोच रहा था कि क्या मुझे पहले कमांड प्रॉम्प्ट खोलना होगा। आपको जो करने की आवश्यकता है वह पूरी कमांड के साथ टाइप करें cmd /k। उदाहरण के लिए मान लें कि आपके बैच फ़ाइल का नाम "my_command.bat" है जो कमांड चलाता है javac my_code.javaतो आपकी बैच फ़ाइल में कोड होना चाहिए:

cmd /k javac my_code.java

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


0
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java

cmd cd C:\xxx\yourbat.bat

दूसरी आज्ञा करें कि आपकी cmd विंडो बंद न हो। महत्वपूर्ण बात यह है कि आप अभी भी नई कमांड इनपुट कर सकते हैं


0

एक विडंबना के रूप में यह भी काम करता है जब विंडोज़ में सर्च बार से सीधे कमांड चलाता है।

जैसे ipconfigकमांड चलने के बाद सीधे रनिंग सीधे cmd विंडो को बंद कर देगी।

यहां छवि विवरण दर्ज करें

का उपयोग cmd \k <command>नहीं - जो मैं यह जवाब मिला जब मैं क्या करने की कोशिश कर रहा था।

यहां छवि विवरण दर्ज करें

यह हमेशा उस कमांड को पहचानने का अतिरिक्त लाभ है जिसे आप चलाने की कोशिश कर रहे हैं। जैसे echo hello worldसर्चबार से चलने वाला काम नहीं करेगा क्योंकि यह एक कमांड नहीं है, हालांकि cmd \k echo hello worldबस ठीक काम करता है।

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