2012-07-17 12 views
5

मैं एक बैच फ़ाइल लिखने की कोशिश कर रहा हूं जो सेट चर पर किए गए मॉड्यूलस ऑपरेशन के परिणाम के आधार पर संचालन करता है। हालांकि, मुझे यह बिल्कुल सही नहीं लग रहा है।बैच में मैं मॉड्यूलस ऑपरेशंस को सही तरीके से कैसे करूं?

गणितीय ऑपरेशन के लिए मेरे वाक्यविन्यास के सभी परीक्षणों में से पहले, मैं वांछित परिणाम उत्पन्न करने के लिए एक सरल स्क्रिप्ट प्राप्त करने का प्रयास कर रहा हूं।

:START 
SETLOCAL 
SET /P Input-Num="Input Number: " 
SET /A Input-Num=%Input-Num% %% 2 
ECHO %Input-Num% 
ENDLOCAL 
PAUSE 
:END 

अगर मैं इनपुट 5, उम्मीद उत्पादन 1 है। हालांकि, इसके बजाय मुझे Missing operator. कहने वाला एक संदेश मिलता है और फिर यह 5 आउटपुट करता है।

मैं यहाँ क्या गलत कर रहा हूं?

+0

क्या यह डॉस या कुछ और है? जब मैं उस सटीक नमूना को चलाता हूं (शीर्ष पर जोड़े गए @ECHO OFF' के साथ) – LittleBobbyTables

+1

आपके कोड को बैच फ़ाइल से ठीक काम करता है तो मुझे 'अनुपलब्ध ऑपरेटर' के साथ '1'' मिलता है। यदि आप इसे सीएमडी में सीधे टाइप कर रहे हैं तो '%' से बचें नहीं। '%%' के बजाय '%' का उपयोग करें। – vcsjones

+0

@LittleBobbyTables सबसे पहले, मुझे आपकी स्क्रीन का नाम पसंद है। यह विंडोज 7 पर सीएमडी में है। मैंने टैग अपडेट कर दिए हैं। – Iszi

उत्तर

4

SET /P का उपयोग करना आपकी समस्या है, क्योंकि 5 को अब संख्यात्मक मान के रूप में नहीं माना जाता है। उपर्युक्त के रूप में आपका उदाहरण अपेक्षित काम करता है

+0

क्या 'एसईटी/पी' (या ऐसा कुछ जो समान रूप से संचालित होगा) का उपयोग करने का कोई तरीका है * और * चर पर गणित संचालन निष्पादित करता है? – Iszi

+0

यह लिंक देखें: http://stackoverflow.com/a/684389/334849। वे 'एसईटी/पी' का उपयोग करते हैं, फिर कोड में बाद में दूसरे चर के लिए 'एसईटी/ए' करते हैं। – LittleBobbyTables

+0

ने अभी कोशिश की है। अभी भी काम नहीं करता है। अब मुझे * दो * 'गायब ऑपरेटर' त्रुटियां मिलती हैं। – Iszi

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

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