batch-file
Obejdź ograniczenia arytmetyczne w plikach wsadowych
Szukaj…
Wprowadzenie
Pliki wsadowe pozwalają na obliczanie tylko 32-bitowych liczb całkowitych, choć można to obejść za pomocą różnych metod.
Za pomocą programu PowerShell
Ponieważ PowerShell jest domyślnie instalowany w każdym systemie Windows od wersji 7/2008 i nowszej, można go używać do bardziej złożonych obliczeń:
@echo off
set "expression=(2+3)*10/1000"
for /f %%# in ('"powershell %expression%"') do set result=%%#
echo %result%
Zwróć uwagę na dodatkowe podwójne cudzysłowy w for /f
które zapobiegają konfliktom nawiasów ze składnią polecenia for.
Potencjalnym problemem jest to, że PowerShell jest znacznie wolniejszy niż użycie wsh / vbscript / jscript z powodu ładowania frameworku .net
Za pomocą jscript
WSH/JScript
jest instalowany w każdym systemie Windows od NT, więc użycie go do bardziej złożonych obliczeń czyni go dość przenośnym. JScript jest łatwiejszy do połączenia z plikiem wsadowym:
@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)));
Dzięki takiemu podejściu możesz umieścić cały kod w jednym pliku. Jest to szybsze niż używanie PowerShell. Tu i tutaj można znaleźć bardziej zaawansowane skrypty (które można wykorzystać jako pliki zewnętrzne).
Emulowanie obliczeń pisakowych i papierowych, implementacje funkcji matematycznych
- Tutaj można znaleźć najbardziej wszechstronną bibliotekę matematyczną, która emuluje obliczenia pióra i papieru i umożliwia pracę z większymi liczbami.
- Oto inne przykłady emulacji pióra i papieru: DODAJ , Porównanie , Mnożenie
- Niektóre implementacje funkcji matematycznych można znaleźć tutaj .