2010-10-16 7 views
5

Ich fange gerade an, Befehlszeilenskripte zu lernen, und ich habe eine Aufgabe für die Schule, in dem der erste Teil eine Batch-Datei erstellen, die zwei ganze Zahlen als Parameter akzeptiert. Die ganzen Zahlen werden anschließend in der ganzen Frage manipuliert, und ich suche keine Hilfe dabei. Ich habe viele verschiedene Wege gegooglet und kann keine Antwort finden. Wie beginne ich das?Wie erstellt man eine Batch-Datei, die zwei ganze Zahlen als Parameter akzeptiert

Ich weiß, das ist sehr einfach zu wahrscheinlich jeder, der dies liest, aber ich bitte Sie, mich etwas schlaff zu machen, müssen wir alle irgendwo anfangen.

+0

Welches Betriebssystem? – ChrisF

Antwort

9

Unter der Annahme von MS-DOS können Sie %1, %2 usw. für Eingabeparameter verwenden.

@ECHO OFF 

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

SET /a ANSWER=INT1*INT2 

ECHO %ANSWER% 

PAUSE 

Sie könnten dann nennen dies als:

mybatchfile.bat 2 4 
+2

nur zu beachten: Dies wird nicht mit MS-DOS funktionieren, da es in MS-DOS kein 'set/a' gibt. (Obwohl es mit CMD in Ordnung ist) – Stephan

3

Auf Fenster, es ist %1 %2

http://commandwindows.com/batch.htm

Beispiel:

@echo off 

echo %1 %2 

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

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

Ja, tut mir leid, es ist Windows 7, in dem wir das tun. Ich glaube, meine Verwirrung kommt von der Probe, die wir in unserem Vortrag erhielten, indem eine Variable innerhalb des Skripts zugewiesen wurde und wir die Datei 'param' nannten. Fledermaus'. Wir haben dann die Datei als param.bat4 (oder welche Nummer auch immer) ausgeführt, und die 4 wurde als Variable zugewiesen. Ich konnte nicht herausfinden, wie zur Hölle ich zwei ganze Zahlen auf diese Art bekommen sollte. Ich bin nur verwirrt. – mrwienerdog

+0

Also, um den Benutzer den Wert des Parameters zu zuweisen, würde ich nur – mrwienerdog

+0

Verdammt, ich drücke immer zurück, so habe ich ein paar Beiträge, sorry. Wie würde ich den Benutzer dazu bringen, den Parameter einzugeben? – mrwienerdog

3

dies Unter der Annahme, Windows können Sie die Parameter im Skript als %1 und %2 verweisen.

+0

Wow, bin ich beeindruckt. In anderen Fällen, als ich im Internet nach technischer Hilfe gesucht habe (in Bezug auf Schulmaterial), waren einige der Antwortenden sehr unhöflich, wenn sie Fragen beantworteten (im Wesentlichen das Poster dumm zu nennen). Ihr Jungs seid toll! Vielen Dank für Ihre Hilfe, jetzt kann ich meine Frage problemlos abschließen. – mrwienerdog

+0

Gern geschehen, froh zu helfen! –

0

Wenn die Anforderung Ihrer Zuordnung nicht ausdrücklich sagen, dass Sie auf jeden Fall Batch verwenden müssen (cmd.exe), können Sie VBScript verwenden. Es hat eine bessere Fehlerbehandlung und kann Fließkomma-Mathe usw. ausführen, besser als was cmd.exe bieten kann.

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 

Beispiel

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

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

Es gibt Batch angeben. Obwohl, was du geschrieben hast, sieht wirklich cool aus, und ich freue mich darauf, das zu lernen! – mrwienerdog

Verwandte Themen