Début dans le Batch

Fermé
Niiko' Messages postés 299 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 4 novembre 2018 - 13 oct. 2012 à 20:32
Demonikar Messages postés 18 Date d'inscription mercredi 1 août 2012 Statut Membre Dernière intervention 20 août 2014 - 14 nov. 2012 à 19:03
Bonjour,

Je commence dans le batch, juste pour apprendre des choses, par pur loisir. Voila, j'ai récupérer des lignes de codes toute simples, que j'ai modifié, mais j'aurais besoin que des personnes m'en apprennent d'avantages sur certains points :)


@echo off 
:DEBUT 
set /P nombrechoisi=Quel est le nombre mystere ? 
set nombremystere=650
If %nombrechoisi% GTR %nombremystere% GOTO SUPERIEUR 
If %nombrechoisi% LSS %nombremystere% GOTO INFERIEUR 
GOTO FIN 
:SUPERIEUR 
echo nombre superieur TRY AGAIN !
GOTO DEBUT 
:INFERIEUR 
echo nombre inferieur TRY AGAIN !
GOTO DEBUT 
:FIN 
echo __________________________________
echo W I N N E R - LE NOMBRE ETAIT ...
echo __________________________________
pause



Donc, tout d'abord, je voudrais comprendre la comande "set /P"
Ensuite, savoir comment changer le nombre choisi "650" par un nombre aléatoire entre X et Y
Et pour finir, comment faire pour que le une fois trouvé, le résultat s'affiche après "LE NOMBRE ETAIT..."

Je sais que ça fait beaucoup, mais j'aurais envie de progresser :) Sans non plus partir dans des codes trop compliqués !

Je vous remercie d'avance du temps que vous porterez a mon message :)

Bonne soirée !

7 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 2/11/2012 à 15:44
normaliser un nombre aléatoire entre x et y
C:> set x=100 
C:> set y=200 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
160 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
169 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
132 
C:> 
C:> set x=2000 
C:> set y=3000 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
2102 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
2887 
C:> set /a r=(%RANDOM%%(%y%-%x%+1))+%x% 
2263 
1
Demonikar Messages postés 18 Date d'inscription mercredi 1 août 2012 Statut Membre Dernière intervention 20 août 2014 10
14 nov. 2012 à 19:03
euh pour les nombres aléatoires:

set min=0
set max=100
set /a nombremystere=%random% %% (%max%-%min%+1) +%min%

le code corrigé donnerai:
@echo off 
set min=0
set max=100
set /a nombremystere=%random% %% (%max%-%min%+1) +%min%
:DEBUT 
set /P nombrechoisi=Quel est le nombre mystere ? 
If %nombrechoisi% GTR %nombremystere% GOTO SUPERIEUR 
If %nombrechoisi% LSS %nombremystere% GOTO INFERIEUR 
GOTO FIN 
:SUPERIEUR 
echo nombre superieur TRY AGAIN !
GOTO DEBUT 
:INFERIEUR 
echo nombre inferieur TRY AGAIN !
GOTO DEBUT 
:FIN 
echo _____________________________________
echo W I N N E R - LE NOMBRE ETAIT ... %nombrechoisi% 
echo _____________________________________
pause
1
Niiko' Messages postés 299 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 4 novembre 2018 12
15 oct. 2012 à 19:33
Quelqu'un pour me donner quelques indications ?
0
Niiko' Messages postés 299 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 4 novembre 2018 12
18 oct. 2012 à 19:25
Non, toujours personne ? :/
0
Utilisateur anonyme
23 oct. 2012 à 16:59
Salut


Donc, tout d'abord, je voudrais comprendre la comande "set /P" 


D'abord, parlons de la commande set
=> Elle permet de déclarer une variable dans le code.

Exemple : set a = mot
Donc la variable a a pour déclaration, le terme "mot'


=> Set /p permet de faire déclarer une variable par l'utilisateur : c'est une sacrée différence ;)

Comme tu l'as fait, dans ce bout de code :
set /P nombrechoisi=Quel est le nombre mystere ? 
set nombremystere=650
If %nombrechoisi% GTR %nombremystere% GOTO SUPERIEUR 
If %nombrechoisi% LSS %nombremystere% GOTO INFERIEUR 



En soi, le code fonctionne :D


Et pour finir, comment faire pour que le une fois trouvé, le résultat s'affiche après "LE NOMBRE ETAIT..." 


C'est simple

Une fois que tu as déclaré une variable (avec set ou set /p), pour l'afficher, on utilise la commande echo

Essaye ceci
@echo off
set /p prenom=Comment t'appelles-tu ?
echo salut %prenom%! Comment vas-tu ?
pause

Créer ce petit fichietr batch, et lance-le ;)



As-tu d'autres questions ?

@+
0
Sinon, voici le code corrigé :

@echo off 
:DEBUT 
set /P nombrechoisi=Quel est le nombre mystere ? 
set nombremystere=650
If %nombrechoisi% GTR %nombremystere% GOTO SUPERIEUR 
If %nombrechoisi% LSS %nombremystere% GOTO INFERIEUR 
GOTO FIN 
:SUPERIEUR 
echo nombre superieur TRY AGAIN !
GOTO DEBUT 
:INFERIEUR 
echo nombre inferieur TRY AGAIN !
GOTO DEBUT 
:FIN 
echo _____________________________________
echo W I N N E R - LE NOMBRE ETAIT ... %nombrechoisi% 
echo _____________________________________
pause


++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Niiko' Messages postés 299 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 4 novembre 2018 12
26 oct. 2012 à 20:41
Super !
Merci beaucoup pour toutes tes explications, très claires et précises !
Juste une petite question : comment changer le nombre "650" dans mon exemple, par un nombre aléatoire, qui ne changerai pas jusqu'a ce que l'on le trouve ?

Merci !
0
Utilisateur anonyme
27 oct. 2012 à 15:49
Salut :)


Les nombres aléatoires, je ne sais pas faire, désolé :s



++
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
27 oct. 2012 à 16:03
hello
%RANDOM% affiche un nombre aléatoire
C:> echo %RANDOM%
29843
C:> echo %RANDOM%
15472
C:> echo %RANDOM%
31792
C:>
dans le bat:
set nombremystere=%RANDOM%
0
Niiko' Messages postés 299 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 4 novembre 2018 12
1 nov. 2012 à 20:33
Et il y a t'il possibilité d'encadrer ces nombres ? Par exemple, générer un nombre aléatoire entre x et y ?
0