Rechnen in Batch?
Klar kann man mit set /a einfach Rechenoperationen durchführen, die für die meisten Sachen reichen. Aber kann man ohne Aufwendige Kommastellenbehandlung und komplzierte selbst geschriebene Programmberge zum Wurzelziehen und ohne eine Erweiterung in anderen Sprachenzu schreiben richtig ordentlich rechnen?
Ein Java Programm würde zwar relativ einfach den Zweck erfüllen, wenn man aber bei Termen für eine Variable verschiedene Werte eingesetzt haben möchte, wird das schon schwer ohne sich auf einen Term festzulegen.
3 Antworten
Da würde sich ein kleines Skript ganz gut machen:
@echo off
:MAIN
set /p "rechnung= Rechnung eingeben: "
set "rechnung=%rechnung:Wurzel(=Math.sqrt(%"
echo WScript.Echo(%rechnung%); > %temp%\calc.js
for /f %%a in ('cscript //nologo %temp%\calc.js') do set ergebnis=%%a
echo Das Ergebnis ist %ergebnis%
echo.
goto MAIN
Und mithilfe dieses Skripts lässt sich dann auch eine Tabelle zu verschiedenen x und y Werten einer Gleichung relativ leicht umsetzten.
Was ich hier mit Wurzel (>zu squareroot) bereits angefangen hab lässt sich auch mit sinus cosinus log etc umsetzten.
Mit "SET /A" kannst Du nur die einfachen Integer-Operationen +, -, *, ^, / (nur Ganzzahl-Ergebnis), % (Modulo), ! (Negation) ausführen. Aber Du kannst auch mit Variablen arbeiten:
>set /a blob=12
12
>set /a blob*=3
36
>set /a blob=(blob/4)
9
>set /a blob+=((blob^2)%7)*2
17
Ansonsten bleibt Dir nur VBScript oder ein 3rd-Party-Inline-Calculator. Da musst Du aber selbst mal googeln. Irgend jemand wird das bestimmt schon programmiert haben, da es unter Linux ein alter Hut ist.
Es ist mir immer ein Rätsel warum die Leute komplexe Aufgaben mit batch machen, wenn doch Visual Basic Script auch von Windows mitgebracht wird.
Kuckst Du meine Antwort hier:
Und was hat das damit zu tun? Da fand ich meine Antworten auf beide Fragen deutlich nützlicher...
Seit wann kann man bei Batch Script WScript.Echo benutzen?