random en batch

random en batch - Shell/Batch - Programmation

Marsh Posté le 19-03-2006 à 19:07:51    

salut a tous ! voila je vous expose mon petit probleme :)
 
j aimerai bien connaitre la commande qui permet de definir une valeur a une variable au hasard : je m explique  
 
 
la variable a
 
set a=une valeur au hasar entre 1 et 10
 
en fait ce serai pour instaurer une valeur a la variable a qui soit entre 1 et 10
 
est-ce possbile ? :)
 
merci beaucoup a vous tous d avance ! ;)
 
bonne soirer :)
 

Reply

Marsh Posté le 19-03-2006 à 19:07:51   

Reply

Marsh Posté le 19-03-2006 à 22:29:13    

Il n'y a pas de commandes pour générer un nombre aléatoire en batch.
 
Mais c'est possible en se débrouillant un peu.
 
Regarde sur  
www.robvanderwoude.com
deux exemples y sont donnés.

Reply

Marsh Posté le 20-03-2006 à 18:29:38    

okai merci bocou , par contre je vais peut etre abuser mais il existe pas une autre facon plus simple ?
 
sinon , merci beaucoup quand meme a toi nglechau ;)
 

Reply

Marsh Posté le 20-03-2006 à 18:43:17    

Cherche un peu sur Google, peut-être un programme dans le genre existe déjà en mode ligne de commandes et dans ce cas, il ne te reste plus qu'à l'appeler depuis ton batch ;)

Reply

Marsh Posté le 20-03-2006 à 20:46:29    

re ! je suis tomber par le plus grand des hasard sur un site qui ma filer comme commande un truc dans le genre set /p val=%random% /3277
en fait c est une commande qui permet de definir une valeur au hasard entre 0 et 32000 et quelque :)
j ai donc fait un pti srcipt pour ceux qui seraient interresser en tout cas merci bien a toi nglechau ;)  
 
 
 
@echo off
 
set %random%
set %val%
 
set max=10
set min=0
cls
 
 
echo max=%max%
echo min=%min%
pause>>nul
 
echo les chiffre vont defiler jusqua ce qui en ai un entre 1 et 10 :)
pause>>nul
 
:3
set /A val=%RANDOM%
echo %val%
if %val% gtr %max% goto 1 else goto 2
if %val% lss %min% goto 1 else goto 2
 
:2
goto 12
 
 
:1
goto 3
 
:12
echo c est donc egal a %val%
pause>>nul
 
bonne soirer a tous et merci encore ;)
 

Reply

Marsh Posté le 21-03-2006 à 00:52:40    

Merci, je ne connaissais pas la variable RANDOM ;)
 
Inspirée de ton exemple, je propose ce code, sans boucle :

Code :
  1. @echo off
  2. setlocal
  3. set MAX=100
  4. set MIN=10
  5. set /a VAL=%MIN%+%RANDOM%*(1+%MAX%-%MIN%)/32767
  6. echo val=%VAL%
  7. pause>nul
  8. endlocal&&goto :eof

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed