Début dans le Batch

Niiko' Messages postés 362 Statut Membre -  
Demonikar Messages postés 18 Statut Membre -
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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. Demonikar Messages postés 18 Statut Membre 10
     
    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
  3. Niiko' Messages postés 362 Statut Membre 12
     
    Quelqu'un pour me donner quelques indications ?
    0
    1. Niiko' Messages postés 362 Statut Membre 12
       
      Non, toujours personne ? :/
      0
  4. Utilisateur anonyme
     
    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
    1. Utilisateur anonyme
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Niiko' Messages postés 362 Statut Membre 12
     
    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
    1. Utilisateur anonyme
       
      Salut :)


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



      ++
      0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  8. Niiko' Messages postés 362 Statut Membre 12
     
    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