batch-file-es Windows
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capítulo 15: Evitar las limitaciones
aritméticas en los archivos por lotes.
Introducción
Los archivos por lotes solo permiten cálculos de enteros de 32 bits, aunque esto se puede omitir
con diferentes enfoques.
Examples
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
https://riptutorial.com/es/home 46