MS-DOS बैच फ़ाइल दर्ज करें कुंजी के साथ रोकें


146

क्या यह एमएस-डॉस बैच फ़ाइल में स्क्रिप्ट को रोकने और उपयोगकर्ता के लिए कुंजी दर्ज करने के लिए प्रतीक्षा करने के लिए संभव है?

मैं लूप के लिए ऐसा करना चाहता हूं। प्रत्येक पुनरावृत्ति के बाद, मैं चाहता हूं कि स्क्रिप्ट रोकें और उपयोगकर्ता को 'एंटर' हिट करने के लिए प्रतीक्षा करें

जवाबों:


247

वहाँ एक pauseकमांड है जो बस ऐसा करता है, हालांकि यह विशेष रूप से दर्ज कुंजी नहीं है।

यदि आप वास्तव में केवल दर्ज कुंजी के लिए इंतजार करना चाहते हैं, तो आप setडमी चर के साथ उपयोगकर्ता इनपुट के लिए कमांड का उपयोग कर सकते हैं , कुछ इस तरह से:

set /p DUMMY=Hit ENTER to continue...


17
आपको एक चर नाम निर्दिष्ट करने की आवश्यकता नहीं है: set /p=Hit ENTER to continue...या बस set /p=अगर आपको संकेत की आवश्यकता नहीं है।
dbenham

2
किसी कारण के लिए, मेरा ऐप पॉज़ लॉजिक के ठीक पहले ब्लास्ट कर रहा है। बहुत अजीब।
ouflak

11
इस संदर्भ (बैच फ़ाइल) में प्रयुक्त होने वाले "ऐप" शब्द को देखना थोड़ा अजीब लगता है
एड्रियन ग्रिगोर

यह मेरे लिए काम नहीं करता है। केवल दूसरे लॉन्च से ही काम करता है जब 'सेट' ने env में काम किया / बचाया।
Ses

13

pauseकमांड वही है जो आप ढूंढ रहे हैं। यदि आप केवल मामला देख रहे हैं जब प्रवेश मारा जाता है तो आप runasकमांड का दुरुपयोग कर सकते हैं :

runas /user:# "" >nul 2>&1

स्क्रीन तब तक जमी रहेगी जब तक कि एंट्री हिट न हो जाए। मुझे यह पसंद set/p=है कि यदि आप अन्य बटन दबाते हैं, तो वे प्रदर्शित नहीं होंगे।


4

आप इसे pauseकमांड के साथ कर सकते हैं , उदाहरण:

dir
pause
echo Now about to end...
pause

1
pauseवास्तव में MS-DOS(सभी अन्य उत्तर cmdकेवल काम कर रहे हैं ) के लिए एकमात्र मान्य उत्तर है । तो, आपका जवाब वास्तव में इस विशेष प्रश्न के लिए एकमात्र पूरी तरह से सही है (हालांकि यह पहले से ही 7 साल से अधिक पहले ही सुझाया गया था)
Stephan

3

इस बात पर निर्भर करता है कि आप किस ओएस का उपयोग कर रहे हैं, यदि आप लचीले हैं, तो CHOICEलगभग किसी भी कुंजी में EXCEPTप्रवेश के लिए इंतजार किया जा सकता है

यदि आप वास्तव में Microsoft द्वारा "कमांड प्रॉम्प्ट" कहने पर जोर देते हैं, जो केवल एक MS-DOS एमुलेटर है, तो शायद TIMEOUTआपके उद्देश्य के अनुरूप हो ( timeout /t -1किसी भी कुंजी पर इंतजार करता है, न कि केवल ENTER) और निश्चित रूप सेCHOICE से हाल के विन संस्करणों में उपलब्ध है।

और एक चेतावनी पर SET /P- जब set /p DUMMY=Hit ENTER to continue...काम करेगा,

set "dummy="
set /p DUMMY=Hit ENTER to continue...
if defined dummy (echo not just ENTER was pressed) else (echo just ENTER was pressed)

यह पता लगाएगा कि क्या केवल ENTER या कुछ और, ENTER में समाप्त होने को बंद किया गया था।

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