2009-12-08 14 views
13

मैं एक सीएमडी बैच विकसित कर रहा हूं। मैं इसमें कुछ गणित करना चाहता हूं। यह सूत्र: (x+1)100:yबैच पर जीत (जीत)

तो बैच में, x = %x%, and y = %y%। मुझे पता है कि चर सेट करने के लिए कैसे। अब, बैच इसकी गणना कैसे कर सकता है? (विंडोज सीएमडी)

क्या मुझे कुछ अतिरिक्त चाहिए?

+0

आप दो बैच फ़ाइल चर, 'x' और 'y' दिए गए प्रतिशत को काम करना चाहते हैं? –

उत्तर

27

सेट आदेश कुछ सीमित गणना का समर्थन करता है (मैं इस 7. के लिए Windows XP के उपयोगकर्ताओं के लिए उपलब्ध होने की जरूरत है)। आपके मामले में, आप चाहते हैं:

set /a result=(100*x)/y 

भागो set /? क्या समर्थित है पर पूर्ण प्रलेखन देखने के लिए। /a स्विच स्वचालित परिवर्तनीय सबसेंशन भी करता है, इसलिए आप %x% के बजाय x का उपयोग कर सकते हैं।

5
@echo off 

set x=42 
set y=5 

set /a z = 100 * x/y 

echo %z% 

set /a आदेश आप एक चर करने के लिए एक गणितीय अभिव्यक्ति का परिणाम आवंटित करने के लिए अनुमति देता है (उस पर, इन भाव में चर नाम के आसपास % की आवश्यकता नहीं है)। समर्थित ऑपरेटरों और विवरण की सूची के लिए set /? देखें।

ध्यान दें कि विंडोज बैच फ़ाइलें फ्लोटिंग-पॉइंट अंकगणितीय का समर्थन नहीं करती हैं, इसलिए यदि कोई अभिव्यक्ति परिणाम एक आंशिक संख्या है, तो केवल पूर्णांक भाग गिना जाएगा। उदाहरण के लिए, 3/2 और 2/3 के रूप में मूल्यांकन करता है।

2

बैच में गणित मत करो। यदि आप प्रतिशत कर रहे हैं, तो आपके पास दशमलव हो सकता है और बैच decimals का समर्थन नहीं करता है। (फ्लोटिंग)। Vbscript या कुछ बेहतर का प्रयोग करें।

नीचे बचाने

caculate.vbs रूप

Set objFS=CreateObject("Scripting.FileSystemObject") 
Set objArgs = WScript.Arguments 
x = objArgs(0) 
y = objArgs(1) 
WScript.Echo (x + 1) * 100/y 

और कमांड लाइन पर

c:\test> cscript //nologo calculate.vbs 4 5 
+0

मुझे जो काम कर रहा हूं उसके लिए मुझे दशमलव की आवश्यकता नहीं है। –

+0

और बीटीडब्ल्यू; मैं भूल गया कि यह एक्स + 1 नहीं था लेकिन वाई + 1। तो जैसे (x * 100)/(y + 1) –

2
  • set /a (किसी भी arithmatic)
  • set /a 2+2 जोड़ने
  • set /a 2-2 घटाकर
  • set /a 2*2
  • set /a 2/2 गुणा समीकरणों पूर्व के लिए के गुणों को दिखाने के लिए
  • set /a 2^2

उपयोग कोष्ठक और कोष्ठक deviding exponet। 2(2+2)=8 वितरण संपत्ति दिखाता है।

+3

इन उदाहरणों को उद्धरण 'सेट/ए "2^2" 'उद्धरण उद्धरणों की आवश्यकता है (उद्धरण के बिना यह केवल 22 है) और'^'तार्किक एक्सओआर है।अंतिम एक त्रुटि है क्योंकि इसमें ऑपरेटर गुम है: '2 * (2 + 2)' = '8' – Zaq

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