2011-10-24 9 views
58

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

+0

[संभवतः मेरे बैच फ़ाइल में उपयोगकर्ता इनपुट के साथ समस्या] की संभावित डुप्लिकेट (http://stackoverflow.com/questions/916413/problem-with-user-input-in-my-batch-file) –

+0

@ रेमंड: नहीं सवाल है कि कुंजीपटल से स्ट्रिंग के रूप में एकाधिक अक्षरों को एक चर में पढ़ना है। – Nohsib

+0

आदेश 'सेट/पी' जो कुछ भी उपयोगकर्ता प्रकार टाइप करता है, चाहे वह एक अक्षर या एकाधिक हो। –

उत्तर

96

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

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

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

+0

इसे मिला !!! धन्यवाद – Nohsib

+22

नोट: आप उपयोगकर्ता इनपुट का उपयोग '% delBuild%' – Jacob

+1

के साथ कर सकते हैं ध्यान दें कि 'echo! Delbuild!' इस उद्देश्य के लिए 'setlocal EnableDelayedExpansion' सक्षम – xacinay

8

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

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

यह उपयोगकर्ताओं को केवल "Enter" दबाने अगर वे डिफ़ॉल्ट दर्ज करना चाहते हैं कर सकते हैं।

10

जैसा कि हर कोई कह रहा है, set /p varname="prompt message" का उपयोग करना पर्याप्त है। तुम सिर्फ जल्दी से एक cmd उदाहरण के बजाय तुरंत बाहर निकलने के लिए, बस नीचे दिए तरीके से खुला रखने के लिए देख रहे हैं अपनी स्क्रिप्ट के अंत में पर्याप्त

set /p temp="Hit enter to continue" 

है और यह विंडो खुली रखेंगे।

+9

सक्षम होने पर आपको निष्पादन पर अधिक विश्वसनीय आउटपुट देगा, किसी ने आविष्कार किया 'रोकें' कमांड। इसके अलावा यह 'सेट/पी' है,' सेट \ p' नहीं। – Stephan

+4

"जैसा कि हर कोई कह रहा है", इसका तात्पर्य है कि उत्तर पहले ही दिया जा चुका है, इसलिए बिना किसी सूचना के किसी अन्य व्यक्ति को – jeb

+1

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

संबंधित मुद्दे