Buscar..


Introducción

Los archivos por lotes solo permiten cálculos de enteros de 32 bits, aunque esto se puede omitir con diferentes enfoques.

Usando PowerShell

Como el powershell se instala de forma predeterminada en todos los sistemas de Windows a partir de 7/2008, se puede utilizar para cálculos más complejos:

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

Tenga en cuenta las comillas dobles adicionales en for /f que evitan que los corchetes entren en conflicto con la sintaxis de comando for.

El problema potencial es que powershell es mucho más lento que usar wsh / vbscript / jscript debido a la carga de .net framerwork

Usando jscript

WSH/JScript se instala en todos los sistemas de Windows desde NT, por lo que su uso para cálculos más complejos lo hace bastante portátil. JScript es más fácil de combinar con un archivo por lotes:

@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 este enfoque, puede poner todo su código en un solo archivo. Es más rápido que usar powershell. Aquí y aquí se pueden encontrar scripts más avanzados (que se pueden usar como archivos externos).

Emulación de cálculos a lápiz y papel, implementaciones de funciones matemáticas.

  1. Aquí se puede encontrar la biblioteca matemática más completa que emula los cálculos con lápiz y papel y permite trabajar con números más grandes.
  2. Aquí hay otros ejemplos de emulaciones de lápiz y papel: AGREGAR , Comparación , Multiplicar
  3. Algunas implementaciones de funciones matemáticas se pueden encontrar aquí .


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow