Comment utiliser aléatoire dans le script BATCH?
windows
random
windows-xp
batch-file
IAdapter
la source
la source
Réponses:
%RANDOM%
vous donne un nombre aléatoire compris entre 0 et 32767.En utilisant une expression comme
SET /A test=%RANDOM% * 100 / 32768 + 1
, vous pouvez changer la plage en ce que vous voulez (ici la plage est [1… 100] au lieu de [0… 32767]).la source
SETLOCAL ENABLEDELAYEDEXPANSION
et utiliser à la!RANDOM!
place de%RANDOM%
, comme Eugene l'a publié.%RANDOM% * (%maxval% - %minval% + 1) / 32768 + %minval%
; juste définirminval
etmaxval
aux valeurs appropriées en premier.Vous pouvez contrôler la plage de numéros avec:
- produira un nombre entre 0 ~ 99.
Celui-là:
- produira un nombre entre 1 ~ 100.
la source
%random% %%100
n'est pas une syntaxe magique mais en fait%random % %% 100
avec un espace de moins, où le%%
est juste un échappé%
qui signifie modulo.)Vous voudrez probablement obtenir plusieurs nombres aléatoires, et vous voudrez peut-être être en mesure de spécifier une plage différente pour chacun, vous devez donc 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 estRAND_NUM
après la sortie de cette fonction.la source
la source
Vous pouvez le faire de cette façon, ce qui ne nécessite pas
EnableDelayedExpansion
où
max
est votre maximum etmin
votre minimum. Ce n'est pas très efficace car cela peut prendre beaucoup de tours si votre portée est trop petite. En outre, cela ne fonctionnera pas pour les nombres supérieurs à 32767.la source
Disons que vous voulez un nombre 1-5; vous pouvez utiliser ce qui suit:
Ou vous pouvez utiliser: ~ 1,1 à la place de: ~ -1,1. Le: ~ -1,1 n'est pas nécessaire, mais il réduit considérablement le temps nécessaire pour atteindre la bonne plage. Disons que vous voulez un nombre 1-50, nous devons choisir entre 2 chiffres et 1 chiffre. Utilisation:
Vous pouvez ajouter plus à cet algorithme pour choisir entre de grandes plages, telles que 1-1000.
la source
goto
-vous quand vous pouvez avoir une doublure comme ci-dessus? D'autres solutions vous permettent de spécifier explicitement la plage. Quel est l'avantage de votre code?exemple "
donnera un nombre aléatoire entre 100 et 50. Veillez à n'utiliser qu'un seul signe de pourcentage comme opérande si vous n'utilisez pas la ligne dans un script batch!
la source
la source
simplifié avec plusieurs instructions IF et beaucoup de ((()))
la source
Et juste pour être complètement aléatoire pour ceux qui ne veulent pas toujours d'un écran noir.
Cela changera la couleur de l'écran et les deux sont aléatoires.
la source
Si vous divisez par une grande valeur, vous obtiendrez une énorme quantité de doublons les uns après les autres. Ce que vous devez faire est de prendre modulo de la valeur% RANDOM%:
la source
voici un exemple que j'ai créé pour vous, il devrait afficher une boîte de dialogue vous demandant de sélectionner un nombre 1-10, en fonction du nombre que vous sélectionnez, il générera un exemple de nombre aléatoire dans un fichier batch que vous avez nommé. Si vous sélectionnez "1", vous obtiendrez un exemple de numéro aléatoire à 1 chiffre. si vous sélectionnez "10", vous obtiendrez un exemple de numéro aléatoire à 10 chiffres.
la source
maintenant avec toutes les couleurs de l'arc-en-ciel dos
la source
Et juste pour être complètement aléatoire, un manque total d'ordre:
SET /A V=%random% %%15 +1
la source