[Batch] Un random définit ?
Résolu
Delzur
-
LeXPlai3RmAx -
LeXPlai3RmAx -
Voila je voudrais demander, car j'ai vu sur un topic que les random étaient possible, la commande set var = %random%, mais ets-ce possible de donner un ensemble de définition ? j'ai bien tenté un set /a var = %random(0-2)% (lol, je sais, c'était mal barré ) mais il m'a dit "il manque une opérande"
comment donner une ensemble ?
(quelle est cette erreur ?)
Merci de m'avoir lu
comment donner une ensemble ?
(quelle est cette erreur ?)
Merci de m'avoir lu
Configuration: Windows XP Internet Explorer 6.0
12 réponses
-
Salut,
si ça t'interesse encore,
set /a n="%random%%5"
génère un nombre compris entre 0 et 4. Pour fixer le minimum a 2 par exemple, additionne simplement 2 à n, et réajuste le diviseur (5 ici).
Pour générer un nom entre 2 et 4, tu va taper ceci :
set /a n="%random%%3+2"
Plus généralement, tu va donc utiliser la formule : "%random%%x+y"
Où y= valeur min et
x = valeur max -y + 1
Si je ne me trompe pas...
Bon courage. -
voici mon code qui génre aléatoirement entre 0 1 2
@echo off set /a n=%random%%%3 echo %n% pause
il faut 3% pour qu'il s'excute c'est pas juste %random% ou %random%% il faut %random%%%
je sais pas pk mais ça marche %leul% :d
Bon courage -
Pour résoudre tout les problème voici un script qui demande le maximum le minimum pour générer un nombre aléatoire.
@ECHO off SET /p max=max ^> SET /p min=min ^> SET /a m=%max% SET /a mi=%min% SET /a n=%mi% SET /a x=%mi% + 1 SET /a x=%m% - %x% SET /a nb=%random% %% %x%+%n% ECHO %nb% PAUSE EXIT
Maintenant pour l'adapter a n'importe quels nombres remplacez x par le maximum et y par le minimum
SET /a m=x SET /a mi=y SET /a n=%mi% SET /a x=%mi% + 1 SET /a x=%m% - %x% SET /a nb=%random% %% %x%+%n% ECHO %nb%
@+, en espérant avoir été utile a quelqu'un et merci à blackaagony pour sa réponse qui m'a aidée a écrire ce script -
Salut avec ton code tu va faire tourner l'ordi comme un porc jusqu'à ceux qui trouve un nombre entre 0 et 2.
Alors que comme ça, c'est beaucoup mieux:@echo off set /a random2=%random%%%3 echo %random2% pause
Bilou.-
Oui, merci, je m'en suis aperçu après ^^
sur le coup, j'ai fait attention qu'aux étiquettes :S (j'en suis fou, je les adore ... c'est con mais c'est comme ça)
bref, je l'ai remodifié, le but étant de générer un nombre entre 0 et 50 un certain nombre de fois (qui n'est pas défini)
et je m'en suis sorti avec ça
@echo off
:un
set /a n=%random%%%50
echo %n%
pause
goto un -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
salut,
A mon avis il faut se pencher du coté du modulo.
Essaye ça :
set /a n="%random%%3"
-
Pour des nombres entre 0 et 9 ou 1 et 10 essaye ca
@echo off set nombre=%random:~-1% rem Si tu veux un nombre entre 1 et 10 la ligne suivante va etre utile set /a nombre=nombre+1
Et pour des nombres entre 0 et 99 ou 1 et 100 essaye ca@echo off set nombre=%random:~-2% if %nombre:~0,-1%==0 set nombre=%nombre:~1% rem Si tu veux un nombre entre 1 et 100 la ligne suivante va etre utile set /a nombre=nombre+1
Et pour des nombres entre 0 et n essaye@echo off rem %n% est le maximum set /a n=n+1 set /a nombre=%random%%%n
Et enfin pour des nombres entre 1 et n essaye enfin ce dernier code@echo off rem %n% est le maximum set /a nombre=%random%%%n set /a nombre=nombre+1
Je pense que j'ai tout explique
Je me demande pourquoi ca ne marche pas avec 2 % ca fait pas le resultat voulu mais avec 3 % ca marche -
en fait je cherche un nombre aléatoire entre 0-2
et je préçise que je le souhaite
entier
avec 0 et 2 inclus ! -
Salut j'ai éssayé ton code mais j'avoue que j'ai pas compris... en fait ça reviens a un truc genre n=%random%*3 non ?
voila si tu pouvais m'expliquer un peu plus ^^
Merci -
-
tu aurais pu aussi faire un code du genre
@echo
:un
set a=%random%
if %a%=0 goto deux
if %a%=1 goto deux
if %a%=2 goto deux
goto un
:deux
echo %a%
echo.
pause
meme si je repond un peu tard sa peut toujours servir a quelqu'un ^^ -
il y a quelques fautes dans le code de kikinou.
Code corrigé :@echo off :un set a=%random% if %a%==0 goto deux if %a%==1 goto deux if %a%==2 goto deux goto un :deux echo %a% echo. pause
Voila parce que sinon ça plante.
Sinon merci c'est exactement ce qui me fallait ! (même si ce code met un moment avant de tomber sur un des trois chiffres) -
Bon Pour faire simple.
set /a exemple=%random% %%101
(la on m'ait la variable "%exemple%" a un chiffre (Nombre) entre 101 est -1 Non Inclut )
pour afficher on peut faire sa.
echo %exemple%
pause
merci de clore le sujet avec le bouton!!!