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)