Saltar al contenido

¿Cómo usar aleatorio en el script BATCH?

Solución:

%RANDOM% le da un número aleatorio entre 0 y 32767.

Usando una expresión como SET /A test=%RANDOM% * 100 / 32768 + 1, puedes cambiar el rango a lo que quieras (aquí el rango es [1…100] en lugar de [0…32767]).

% RANDOM% le da un número aleatorio entre 0 y 32767.

Puede controlar el rango del número con:

set /a num=%random% %%100

– producirá un número entre 0 ~ 99.

Éste:

set /a num=%random% %%100 +1

– producirá un número entre 1 ~ 100.

Probablemente desee obtener varios números aleatorios y es posible que desee poder especificar un rango diferente para cada uno, por lo que debe definir una función. En mi ejemplo, genero números del 25 al 30 con call:rand 25 30. Y el resultado está en RAND_NUM después de que esa función sale.

@echo off & setlocal EnableDelayedExpansion

for /L %%a in (1 1 10) do (
        call:rand 25 30
        echo !RAND_NUM!
)

goto:EOF

REM The script ends at the above goto:EOF.  The following are functions.

REM rand()
REM Input: %1 is min, %2 is max.
REM Output: RAND_NUM is set to a random number from min through max.
:rand
SET /A RAND_NUM=%RANDOM% * (%2 - %1 + 1) / 32768 + %1
goto:EOF
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *