batch-file
Bypass aritmetiska begränsningar i batchfiler
Sök…
Introduktion
Batchfiler tillåter endast 32 bitars heltalberäkningar, även om detta kan kringgås med olika tillvägagångssätt.
Använda powershell
Eftersom powershell är installerat som standard på alla Windows-system från 7/2008 och uppåt kan den användas för mer komplexa beräkningar:
@echo off
set "expression=(2+3)*10/1000"
for /f %%# in ('"powershell %expression%"') do set result=%%#
echo %result%
Tänk på de ytterligare dubbla citaten i for /f
som förhindrar parenteser i konflikt med syntaxen för kommandot.
Potentiellt problem är att powershell är mycket långsammare än att använda wsh / vbscript / jscript på grund av laddningen av .net-framerwork
Med jscript
WSH/JScript
är installerat på alla Windows-system sedan NT så att det används för mer komplexa beräkningar gör det ganska bärbart. JScript är enklare att kombinera det med batchfil:
@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)));
Med den här metoden kan du lägga hela koden i en enda fil. Det är snabbare än att använda powershell. Här och här kan mer avancerade skript hittas (som kan användas som externa filer).
Emulering av penna och pappersberäkningar, implementeringar av matematikfunktioner
- Här hittar du det mest omfattande matematikbiblioteket som emulerar penn- och pappersberäkningar och gör det möjligt att arbeta med större antal.
- Här är ytterligare exempel på penna- och pappersemuleringar: ADD , Comparison , Multiply
- Vissa implementeringar av matematikfunktioner kan hittas här .