Programme batch MSDOS

Résolu
pOw4_Amecpie Messages postés 548 Statut Membre -  
SMOXAR Messages postés 56 Statut Membre -
Bonjour,
alors voila j'aimerais créer un programme batch .. enfin plutot une petite conneri du genre :
es tu debile ?
si oui, alors un message aparait du genre : c'est bien tu es honnete !
si non, alors le programme se ferme et t'etein lordi au bout de 60 sec
je m'y connais pas trop mais pour l'instant j'ai fais ceci :

@echo off
echo es tu debile ? (O=Oui ; N=Non)
echo.
set /P choix=
If %choix%=="o"
echo c'est bien t'es honnete !
pause
else If %choix%=="n"
shutdown -s -t 60
pause

bien evidemment ça ne marche pas donc si quelqu'un pouvait m'aider a faire ce code se serait cool de sa part !
merci d'avance a+
Configuration: Windows Vista
Firefox 2.0.0.14

8 réponses

  1. Antoine
     
    J'ai un peu plus propre :

    @echo off
    cls

    echo Etes-vous debile ? Ecrivez O (Oui) ou N (Non) puis appuyez sur Entree

    :QUESTION
    set/p "cho=>"
    if %cho%==O goto OUI
    if %cho%==N goto NON
    echo Ecrivez O ou N
    goto QUESTION

    :OUI
    echo.
    echo C'est bien d'etre honnete avec soi-meme :-)
    echo.
    pause
    goto END

    :NON
    shutdown -s -t 10 -c "Ouh le vilain menteur !"
    goto END

    :END
    23
    1. TECHNO'HACKER
       
      Je suis d'accord avec ton programme mais saurais-tu comment faire un quizz ou il y a plusieurs question? En fait je n'y arrive qu'en trifouillant un peu mais sans occune logique ...
      0
    2. TECHNO'HACKER
       
      Il faudrait aussi que tu rajoute " ecrivez en majuscule surtout" mais pense a le mettre sur une 2°¨ligne echo car sinon ca va te couper te phrase en plein milieu au cause de la taille de l'invite de commande dans la quelle il va etre executé ( executer= ouvert pour les debutants et invite de CMD c une fenetre de commende qu'on trouve dans le menu DEMARE)
      0
    3. Antoine
       
      Pour le quizz, ce n'est pas très différent : Tout sera fait à base de labels (les deux-points), de GOTO et de IF : Pour chaque question, un label (:QUESTION1 :QUESTION2), avec plusieurs choix, le candidat écrit la lettre correspondant à son choix (A : Sarkozy / B : Hollande etc, exemple improvisé), et un IF teste le tout : IF %cho%==A ECHO Ah, vous choissez Sarkozy GOTO QUESTION3. J'espère avoir répondu à ta question :)
      0
    4. dodlytroud Messages postés 2 Statut Membre
       
      set /p"Merci beaucoup=>" , grâce a vous j'ai pu en créer un très marrant ... ;) XD
      0
  2. jee pee Messages postés 31885 Date d'inscription   Statut Modérateur Dernière intervention   9 980
     
    salut,

    voici le corrigé de l'exercice
    @echo off
    set /P choix=Le programmeur est debile (O=Oui ; N=Non) ? : 
    If %choix%==O (echo Tu as raison !) else (
       If %choix%==N (echo Fayot !!!) else (echo Il faut choisir dans la vie !) ) 

    ou version plus courte (mais moins rigoureuse)
    @echo off
    set /P choix=Le programmeur est debile (O=Oui ; N=Non) ? : 
    If %choix%==O (echo Tu as raison !) else (echo Fayot !!!) 
    :-))

    --
    4
    1. pOw4_Amecpie
       
      bonjour,
      merci beaucoup pour ton aide mais j'ai encore une petite question...
      est-ce que je peux mettre plusieurs truc a la fois dans if du genre :
      If %choix%==O,o,oui,ouais etc ... ?
      merci
      0
      1. jee pee Messages postés 31885 Date d'inscription   Statut Modérateur Dernière intervention   9 980 > pOw4_Amecpie
         
        je pense qu'il n'existe pas de possibilité mutli réponses il faut les traiter une après l'autre en cascade

        sauf le cas des minuscules/majuscules le paramètre /I permet de traiter indifféremment les 2 donc :

        IF /I %choix%==O
        -1
      2. pOw4_Amecpie > jee pee Messages postés 31885 Date d'inscription   Statut Modérateur Dernière intervention  
         
        salut !
        ok ben je vais faire ça !
        merci pour ton aide et bonne continuation !
        @+
        0
      3. pOw4_Amecpie Messages postés 548 Statut Membre 37 > pOw4_Amecpie
         
        re salut ^^
        oui c bon ça marche nikel !
        merci encore !
        donc si je recapitule mon programme donne ça :

        @echo off
        set /P choix=es tu vraiment débile (O=Oui ; N=Non) ? :
        If /I %choix%==O (
        echo Tu as raison !
        ) else (
        If /I %choix%==N (
        shutdown -s -t 60
        echo menteur !
        ) else echo Il faut faire un choix !
        )
        pause

        voila @++++
        0
    2. ???
       
      Et voici
      carre pong :

      @ECHO OFF
      CLS
      title carre pong !
      rem ------------------------------------
      rem Initialisations
      rem ------------------------------------
      SET /A X=5
      SET /A dX=1

      SET /A Y=2
      SET /A dY=1

      SET VAR=O
      SET VAR_MUR=±

      :debut

      rem ------------------------------------
      rem Création de la ligne du curseur
      rem ------------------------------------

      rem --- décalage colonne ---
      SET /A colonne=0

      :decal_col_avant

      IF %colonne% GEQ %X% GOTO decal_col_avant_termine
      SET VAR=^ %VAR%
      SET /A colonne+=1

      GOTO decal_col_avant

      :decal_col_avant_termine

      rem --- décalage colonne pour le mur de droite ---
      SET /A X_restant=25-%X%

      :decal_col_apres

      IF %X_restant% EQU 0 GOTO decal_col_apres_termine
      SET VAR_MUR=^ %VAR_MUR%
      SET /A X_restant-=1

      GOTO decal_col_apres

      :decal_col_apres_termine

      SET VAR=±%VAR%%VAR_MUR%

      rem ------------------------------------
      rem Affichage
      rem ------------------------------------

      CLS

      ECHO ±±±±±±±±±±±±±±±±±±±±±±±±±±±±

      rem --- décalage ligne avant ---
      SET /A Y_decal_ligne=%Y%-1
      FOR /L %%j IN (0,1,%Y_decal_ligne%) DO (
      ECHO ± ±
      )

      rem --- ligne curseur ---
      ECHO %VAR%

      rem --- décalage ligne après ---
      SET /A Y_restant=11-%Y%
      FOR /L %%j IN (0,1,%Y_restant%) DO (
      ECHO ± ±
      )
      ECHO ±±±±±±±±±±±±±±±±±±±±±±±±±±±±
      ECHO === X=%X% (%dX%), Y=%Y% (%dy%) ===

      rem ------------------------------------
      rem Calculs des rebonds
      rem ------------------------------------

      IF %Y% EQU 12 SET /A dY*=-1
      IF %Y% EQU 0 SET /A dY*=-1
      IF %X% EQU 25 SET /A dX*=-1
      IF %X% EQU 0 SET /A dX*=-1

      rem ------------------------------------
      rem Réinitialisation de variables
      rem pour la prochaine boucle
      rem ------------------------------------

      SET VAR=O
      SET VAR_MUR=±
      SET /A X+=dX
      SET /A Y+=dY
      SET /A nb-=1

      rem ------------------------------------
      rem Temporisation si nécessaire (à décommenter)
      rem XP: utiliser choice avec temporisation
      rem et donner la possibilité de quitter
      rem ------------------------------------
      rem ping 127.0.0.1 -n 2 > NUL 2> NUL


      GOTO debut
      0
  3. hamza_0081 Messages postés 260 Statut Membre 60
     
    @echo off
    set /P choix=es tu vraiment débile (O=Oui ; N=Non) ? :
    If /I %choix%==O (
    echo Tu as raison !
    ) else (
    If /I %choix%==N (
    shutdown -s -t 60 -c "menteur ! "
    ) else echo Il faut faire un choix !
    )
    pause

    salut mais votre programe marche pas chez moi il m'affiche ds tou les cas Il faut faire un choix !
    alors je lé modifier et la resultat est la suivante C UNE TRES PEUTITE MODIFICATION ET MEME INVISIBLE

    @echo off
    set /P choix=es tu vraiment débile (O=Oui ; N=Non) ? :
    If /I '%choix%'=='O' (
    echo Tu as raison !
    ) else (
    If /I '%choix%'=='N' (
    shutdown -s -t 60 -c "menteur ! "
    ) else echo Il faut faire un choix !
    )
    pause
    1
    1. batcheur
       
      O majuscule et non mininuscule(o)
      0
    2. leam19
       
      je vous conseille de changer les majuscules des letres O et N sinon le gars se dira que ca ne marche pas
      0
  4. gabcha10
     
    @echo off
    cls

    :debut
    cls
    echo.
    echo =================
    echo == Es-tu debile? ==
    echo =================
    echo.
    echo ( o = oui ; n = non)
    echo.

    set /p reponce=
    if %reponce% == O goto oui
    if %reponce% == N goto non
    if %reponce% == o goto oui
    if %reponce% == n goto non
    goto debut

    :oui
    cls
    echo.
    echo C'est bien! tu es honnete! :-)
    echo.
    pause>nul

    goto end

    :non
    cls

    shutdown -s -t 60 -c "C'est pas bien! il fau etre TOUJOURS honnete dans la vie! :-)"
    goto end

    :end
    exit
    1
    1. gabcha10 Messages postés 5 Statut Membre 1
       
      n'oublie pas de mettre tout ca dans un fichier ".BAT" :-)

      (pour info ->> J'ai 14 ans XD)
      0
    2. Fokiia
       
      Et ça fait quoi que tu aie 14 ans ?
      0
    3. hartarus Messages postés 5 Statut Membre
       
      Ca fait qu'il connait des chose que même moi je ne connais pas et j'ai 25 ans... de plus il n'as pas pu avoir de formation à 14 ans pour savoir ça... donc il as cherché par lui même
      ... d'ailleurs moi j'ai aussi un problème à poser à ces têtes pensantes
      j'aimerais faire un .bat qui enverrai un texte dans une fenetre cmd (exemple.exe) le but est que a chaque fois que je lance le .bat le texte s'écrive dans la fenetre cmd...

      facile hein ? :-)

      j'ai vraiment besoin d'aide svp
      merci pour vos réponses
      0
    4. Antoine
       
      j'ai 14 ans aussi et j'en fais pas tout un plat...

      hartarus je ne vois pas le problème ?

      @echo off
      cls

      echo LE TEXTE A ECRIRE
      0
    5. toto
       
      Ca fait surtout qu'il écrit réponse avec un "c"....
      mais bon.... l'important n'est-il pas de se comprendre ? :p
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Webb
     
    Si je veu que le programme retourne au début au lieu de finir, que dois-je faire?
    0
  7. Antoine
     
    Tu ajoutes :DEBUT au tout début du code, et tu modifies ces trois lignes :

    :NON
    shutdown -s -t 10 -c "Ouh le vilain menteur !"
    goto END


    en :

    :NON
    goto DEBUT
    0
    1. Webb
       
      Peut-on mettre echo off au millieu pour effacer ce qu'il y avait précedement?
      0
    2. jee pee Messages postés 31885 Date d'inscription   Statut Modérateur Dernière intervention   9 980
       
      Pour effacer l'écran en mode ligne de commande l'instruction c'est : CLS

      voir ce site pour toutes les possibilités du batch msdos : https://www.robvanderwoude.com/batchfiles.php
      0
  8. bryan62500 Messages postés 327 Statut Membre 20
     
    merci
    0
  9. batcheur
     
    Bonjour,

    voici un petit batch sympa que j'ai créer

    :DEBUT
    @echo off
    cls

    echo aimez vous les jeux vidéo ? Ecrivez O (Oui) ou N (Non) puis appuyez sur Entree

    :QUESTION
    set/p "cho=>"
    if %cho%==O goto OUI
    if %cho%==N goto NON
    echo Ecrivez O ou N
    goto QUESTION

    :OUI
    echo.
    echo C'est bien continuons
    echo.
    pause
    goto SUITE

    :NON
    echo ouh une fille
    pause
    goto DEBUT

    :SUITE

    echo off
    echo etes vous un garçon (O=oui)(N=non)
    echo.

    :QUESTION
    set/p "cho=>"
    if %cho%==O goto OUI
    if %cho%==N goto NON
    echo Ecrivez O ou N
    goto QUESTION

    :OUI
    echo.
    echo C'est bien vous etes un vrai garçons
    echo.
    pause
    goto DEBUT

    :NON
    echo c'est bien vous etes un garçon manquer
    pause
    goto DEBUT
    0
    1. FEDUP
       
      Et bien, le scripting ça peut aller, mais l'orthographe bonjour...
      En plus, le 4 mai 2008, jee pee donne une info sur le "IF /I" et 3 ans plus tard y'en a pour se ramener avec une double ligne :
      if %reponce% == O goto oui
      if %reponce% == o goto oui
      et le dernier qui carrément ne gère pas le cas où on tape en minuscules...
      Et pis la clarté avec 2 routines portant le même label...
      Tout cela sur des scripts à l'intérêt plus que limité.

      J'aime pas flame des inconnnus mais ça fait 20 min que je voie des inepties du genre...
      0
    2. leam19
       
      ...j essaye de bidouiller un batch qui va se copier automatiquement ds windows et ainsi a chaque demmarrage spam ou extinction de lordi.....mdr
      0
    3. SoleilDeWindows13
       
      Bien ce code ! Mais c'est vrai qu'une fonctionn pou prendre les majuscules serait nla bienvenue !
      0
    4. Azerty2
       
      Bonjour.
      J'aimerais savoir comment cette ligne peut être écrite correctement :

      if %cho%=="Bien sûr" goto OUI

      En fait, comment avoir un espace dans une réponse ?
      --------------------------------------------------------------------------------------------

      J'ai une deuxième question :
      J'ai un raccourci sur une clé USB qui exécute un .bat sur cette même clé.
      Seulement voilà, il se peut que la clé change de nom (k:\ à la place de J:\ ou N:\ ...).

      Quelqu'un saurait-il créer un batch pour éviter qu'elle ne change de nom de lecteur ?
      Merci d'avance !
      0
    5. Spy
       
      1. Normalement, tu ne peux pas.
      2. En fait le nom de ton lecteur dépend ou tu branches ta clé USB et de certains programmes qui peuvent utiliser un lecteur qui rajoutent des lettres (ex: entrer un CD ou une carte SD dans l'ordinateur).
      Considérant que tu n'as rien d'inséré dans ton ordinateur et que tu la branches toujours au même endroit, elle ne devrait pas changer d'emplacement.
      Sinon, tu peux essayer avec les conditions : faire ton programme dans K:\, et si l'ordinateur lui dit qu'il y a rien, faire continuer avec J:\ et ainsi de suite.
      0