Vous souhaiterez probablement obtenir plusieurs nombres aléatoires, et vous voudrez peut-être pouvoir spécifier une plage différente pour chacun d'entre eux, c'est pourquoi vous devez définir une fonction. Dans mon exemple, je génère des nombres de 25 à 30 avec call:rand 25 30
. Et le résultat est dans RAND_NUM
après la sortie de cette fonction.
@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
1 votes
Pourquoi voulez-vous faire cela spécifiquement en batch ?
0 votes
Il y a un très intéressant post sur SuperUser liés aux nombres aléatoires dans les scripts batch qui méritent d'être référencés ici...