बैच फ़ाइल में कंसोल से इनपुट कैसे पढ़ें?


82

मैं बैच फ़ाइल में कंसोल से इनपुट कैसे पढ़ सकता हूं? मैं जो हासिल करने की कोशिश कर रहा हूं वह सी में स्कैनफ की कार्यक्षमता है। मैं एक बैच फ़ाइल में कैसे कर सकता हूं?



@ रेमंड: नहीं, सवाल यह है कि कीबोर्ड से स्ट्रिंग के रूप में कई कैरेक्टर्स को एक वेरिएबल में पढ़ा जाए।
Nohsib

कमांड set /pउपयोगकर्ता के प्रकारों को पढ़ता है, चाहे वह एक अक्षर हो या एकाधिक।
रेमंड चेन

@ रेमंड: क्या आप उस पर एक कोड स्निपेट साझा कर सकते हैं ..
Nohsib

जवाबों:


141

लिंक प्रस्तावित डुप्लिकेट में कोड स्निपेट उपयोगकर्ता इनपुट पढ़ता है।

ECHO A current build of Test Harness exists.
set /p delBuild=Delete preexisting build [y/n]?: 

उपयोगकर्ता जितने चाहे उतने अक्षर लिख सकता है, और यह delBuild चर में जाएगा।


36
नोट: आप उपयोगकर्ता इनपुट का उपयोग कर सकते हैं%delBuild%
याकूब

1
ध्यान दें कि echo !delBuild!जब setlocal EnableDelayedExpansionसक्षम होने पर आपको निष्पादन पर अधिक मज़बूती से उत्पादन दिया जाएगा
xacinay

29

यदि आप बस तुरंत बाहर निकलने के बजाय एक cmd उदाहरण को खुला रखना चाहते हैं, तो बस निम्नलिखित करना पर्याप्त है

set /p asd="Hit enter to continue"

आपकी स्क्रिप्ट के अंत में और यह विंडो खुली रखेगा।

ध्यान दें कि यह asdएक पर्यावरण चर के रूप में सेट होगा , और इसे किसी और चीज़ से बदला जा सकता है।


15
इस उद्देश्य के लिए, किसी ने pauseकमांड का आविष्कार किया । इसके अलावा, यह set /pनहीं है set \p
स्टेफेन

6
"जैसा कि हर कोई कह रहा है", का अर्थ है कि उत्तर पहले से ही दिया गया है, इसलिए बिना अधिक जानकारी के एक और व्यक्ति अनावश्यक है
जेब

1
@ जेब आप सही कह रहे हैं। मेरा मुद्दा यह था कि उनमें चर और प्रतिध्वनि शामिल थीं, जबकि मुझे इसकी कोई आवश्यकता नहीं थी। मुझे अपने उत्तरों को पार्स करने में एक या दो मिनट लगे, क्योंकि मुझे कोई बैच अनुभव नहीं मिला है। मेरा मानना ​​है कि मेरा उत्तर मेरी जरूरतों के लिए अनुकूल नंगे न्यूनतम उत्तर को संतुष्ट करता है।
टैंकरस्मैश

@ स्टेफ़न धन्यवाद दोस्त, दोनों मायने रखता है। मैं एक स्क्रिप्ट पूरा होने के बाद बाहर निकलने के लिए cmd उदाहरण रखने के लिए एक रास्ता तलाश रहा था, बस एक्स समय के लिए रोकना पर्याप्त नहीं था।
टैंकरस्मैश

@ अर्सलानअहमद मैंने अभी-अभी परीक्षण किया, यह अभी भी काम करता है cmd, लेकिन पॉवरशेल नहीं। सुनिश्चित करें कि आप सही चीज़ का उपयोग कर रहे हैं।
टैंकरस्मैश

18

मौजूदा उत्तर के अलावा निम्नानुसार एक डिफ़ॉल्ट विकल्प सेट करना संभव है:

echo off
ECHO A current build of Test Harness exists.
set delBuild=n
set /p delBuild=Delete preexisting build [y/n] (default - %delBuild%)?:

यह उपयोगकर्ताओं को केवल "एंटर" हिट करने की अनुमति देता है यदि वे डिफ़ॉल्ट में प्रवेश करना चाहते हैं।

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