Ricerca…


introduzione

I file batch consentono solo calcoli integer a 32 bit, sebbene questo possa essere bypassato con approcci diversi.

Utilizzando PowerShell

Poiché PowerShell viene installato di default su ogni sistema Windows dal 7/2008 in poi può essere utilizzato per calcoli più complessi:

@echo off
set "expression=(2+3)*10/1000"
for /f %%# in ('"powershell %expression%"') do set result=%%#
echo %result%

Presta attenzione alle doppie virgolette addizionali in for /f che evitano che le parentesi siano in conflitto con la sintassi del comando for.

Il problema potenziale è che PowerShell è molto più lento rispetto all'utilizzo di wsh / vbscript / jscript a causa del caricamento del .net framerwork

Usando jscript

WSH/JScript è installato su ogni sistema Windows poiché NT, quindi utilizzarlo per calcoli più complessi, lo rende piuttosto portatile. JScript è più facile da combinare con il file batch:

@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)));

Con questo approccio è possibile inserire l'intero codice in un unico file. È più veloce rispetto all'utilizzo di PowerShell. Qui e qui possono essere trovati script più avanzati (che possono essere usati come file esterni).

Emulazione di calcoli di carta e penna, implementazioni di funzioni matematiche

  1. Qui può essere trovata la libreria matematica più completa che emula calcoli di carta e penna e consente di lavorare con numeri più grandi.
  2. Ecco altri esempi di emulazioni penna e carta: ADD , Comparison , Multiply
  3. Alcune implementazioni di funzioni matematiche possono essere trovate qui .


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow