batch-file
Arithmetische Einschränkungen in Batchdateien umgehen
Suche…
Einführung
Batch-Dateien lassen nur 32-Bit-Ganzzahlberechnungen zu, diese können jedoch mit unterschiedlichen Methoden umgangen werden.
Powershell verwenden
Da die Powershell ab Windows 7/2008 standardmäßig auf jedem Windows-System installiert ist, kann sie für komplexere Berechnungen verwendet werden:
@echo off
set "expression=(2+3)*10/1000"
for /f %%# in ('"powershell %expression%"') do set result=%%#
echo %result%
Beachten Sie die zusätzlichen Anführungszeichen in for /f
die Konflikte in Klammern mit der for-Befehlssyntax verhindern.
Ein mögliches Problem ist, dass Powershell aufgrund des Ladens der .net-Framerwork viel langsamer ist als wsh / vbscript / jscript
Jscript verwenden
WSH/JScript
ist seit Windows auf jedem Windows-System installiert. Durch die Verwendung für komplexere Berechnungen ist es daher sehr portabel. JScript lässt sich einfacher mit einer Batchdatei kombinieren:
@if (@codesection==@batch) @then
@echo off
set "expression=2*(2+3)/1000"
for /f %%# in ('cscript //nologo //e:jscript "%~f0" "%expression%"') do set
result=%%#
echo %result%
:: more batch code
exit /b %errorlevel%
@end
WScript.Echo(eval(WScript.Arguments(0)));
Mit diesem Ansatz können Sie den gesamten Code in einer einzigen Datei speichern. Er ist schneller als die Verwendung von Powershell. Hier und hier finden Sie fortgeschrittenere Skripts (die als externe Dateien verwendet werden können).
Emulation von Stift- und Papierberechnungen, Implementierung mathematischer Funktionen
- Hier finden Sie die umfassendste Mathematikbibliothek, die Stift- und Papierberechnungen emuliert und das Arbeiten mit größeren Zahlen ermöglicht.
- Hier sind weitere Beispiele für Stift- und Papieremulationen: ADD , Vergleich , Multiplizieren
- Einige mathematische Funktionsimplementierungen finden Sie hier .