08.02.2022 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!