Frage

Ich entwickle eine CMD Charge. Ich mag es etwas Mathematik zu tun. Diese Formel: (x+1)100:y

So in Batch, x = %x%, and y = %y%. Ich weiß, wie die Variablen zu setzen. Nun, wie können diese Charge berechnen? (WINDOWS CMD)

Muss ich etwas Besonderes?

(Ich muss das 7 für Benutzer von Windows XP zur Verfügung stehen.)

War es hilfreich?

Lösung

Der Set-Befehl unterstützt eine begrenzte Berechnung. In Ihrem Fall, Sie wollen: set /a result=(100*x)/y

Ausführen set /? um zu sehen, eine vollständige Dokumentation, was unterstützt wird. Der /a Schalter funktioniert die automatische Variablensubstitution, so dass Sie x statt %x% verwenden können.

Andere Tipps

@echo off

set x=42
set y=5

set /a z = 100 * x / y

echo %z%

Der set /a Befehl können Sie das Ergebnis eines mathematischen Ausdruck zu einer Variablen zugewiesen werden (dabei werden die % der um Variablennamen in diesem Ausdrücken nicht erforderlich). Siehe set /? für die Liste der unterstützten Operatoren und Details.

Beachten Sie, dass Windows-Batch-Dateien unterstützen keine Gleitkomma-Arithmetik, so dass, wenn ein Ausdruck Ergebnis eine gebrochene Zahl ist, wird nur der ganzzahlige Teil gezählt wird. Zum Beispiel: 3/2 wertet als 1 und 2/3 als 0 .

NICHT tun Mathe im Batch. Wenn Sie Prozent tun, könnten Sie Dezimalzahlen und Batch nicht Dezimalstellen unterstützen. (Floating). Verwenden Sie vbscript oder etwas besser.

die unten als caculate.vbs speichern

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

und auf Befehlszeile

c:\test> cscript //nologo calculate.vbs 4 5
  • set /a (any arithmatic)
  • set /a 2+2 Hinzufügen
  • set /a 2-2 Subtraktionseinheit
  • set /a 2*2 Vervielfachungs
  • set /a 2/2 deviding
  • set /a 2^2 exponet

Verwendung Klammern und Klammern, die Eigenschaften der Gleichungen zeigen für ex. 2(2+2)=8 Zeigt distributive Eigenschaft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top