2010-10-16 7 views
5

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

मुझे पता है कि यह शायद यह सब कुछ मूलभूत है जो इसे पढ़ता है, लेकिन मैं आपको कुछ ढीला करने के लिए कह रहा हूं, हमें सभी को कहीं भी शुरू करना है।

+0

कौन सा ऑपरेटिंग सिस्टम? – ChrisF

उत्तर

9

एमएस-डॉस मानते हुए, आप इनपुट पैरामीटर के लिए %1, %2 आदि का उपयोग कर सकते हैं।

@ECHO OFF 

SET /a INT1=%1 
SET /a INT2=%2 

SET /a ANSWER=INT1*INT2 

ECHO %ANSWER% 

PAUSE 

फिर आप के रूप में इस कह सकते हैं:

mybatchfile.bat 2 4 
+2

बस ध्यान दें: यह एमएस-डॉस के साथ काम नहीं करेगा, क्योंकि एमएस-डॉस में कोई 'सेट/ए' नहीं है। (हालांकि यह सीएमडी के साथ ठीक है) – Stephan

3

खिड़कियों पर, यह %1 %2

http://commandwindows.com/batch.htm

उदाहरण है:

@echo off 

echo %1 %2 

set /a v = %1 
set /a v2 = %1 + 1 
set /a v3 = %1 * 2 

echo %v% %v2% %v3% 
+0

हां, बहुत खेद है, यह विंडोज 7 है कि हम इसे कर रहे हैं। मुझे लगता है कि मेरा भ्रम हमारे व्याख्यान में दिए गए नमूने से आता है, जिसमें एक चर को स्क्रिप्ट के भीतर असाइन किया गया था, और हमने फ़ाइल 'param' नाम दिया था। बल्ला'। फिर हमने फ़ाइल को param.bat4 (या जो भी संख्या) के रूप में चलाया, और 4 को चर के रूप में असाइन किया गया था। मैं यह नहीं समझ सका कि मुझे इस तरह से दो पूर्णांक कैसे प्राप्त करना था। बस उलझन में, मुझे लगता है। – mrwienerdog

+0

इसलिए उपयोगकर्ता को पैरामीटर के मूल्य को असाइन करने के लिए, मैं केवल – mrwienerdog

+0

चाहता हूं, मैं बदले में दबाव डालता हूं, इसलिए मेरे पास कुछ पोस्ट हैं, क्षमा करें। उपयोगकर्ता को पैरामीटर इनपुट करने के लिए मैं कैसे प्राप्त करूं? – mrwienerdog

3

इस मान लिया जाये कि विंडोज है, तो आप %1 और %2 के रूप में अपनी स्क्रिप्ट में पैरामीटर संदर्भित कर सकते हैं।

+0

वाह, क्या मैं प्रभावित हूं। अन्य मामलों में जब मैंने तकनीकी सहायता (स्कूल से संबंधित सामग्री के संदर्भ में) के लिए इंटरनेट की खोज की है, तो कुछ उत्तरदाताओं को प्रश्नों का उत्तर देते समय बहुत कठोर थे (अनिवार्य रूप से पोस्टर बेवकूफ को बुलाते हुए)। तुम लोग महान हो! आपकी मदद के लिए बहुत बहुत धन्यवाद, अब मैं बिना किसी समस्या के अपना प्रश्न समाप्त कर सकता हूं। – mrwienerdog

+0

आपका स्वागत है, मदद करने में खुशी हुई! –

0

अपने काम की आवश्यकता को विशेष रूप से नहीं कह होती है, तो आप निश्चित रूप से बैच (cmd.exe) का उपयोग करना चाहिए, आप VBScript का उपयोग कर सकते हैं। इसमें एक बेहतर त्रुटि हैडलिंग है, और cmd.exe क्या पेशकश कर सकते हैं उससे बेहतर, फ्लोटिंग पॉइंट गणित आदि कर सकते हैं।

On Error Resume Next 
num1= CInt(WScript.Arguments(0)) 
num2= CInt(WScript.Arguments(1)) 
total=num1 + num2 
If Err.Number <> 0 Then 
    WScript.Echo "Description: " & Err.Description 
    Err.Clear 
Else 
    WScript.Echo "Added: " & total 
End If 

उदाहरण

C:\test>cscript //nologo assigment.vbs 1 2 
Added: 3 

C:\test>cscript //nologo assignment.vbs 1 test 
Description: Type mismatch 
+0

यह बैच निर्दिष्ट करता है। हालांकि, जो आपने लिखा है वह वाकई अच्छा लगता है, और मैं इसे सीखने की उम्मीद कर रहा हूं! – mrwienerdog