[Batch] Petit probleme

jujubassist Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
karirovax Messages postés 3584 Statut Membre -
Bonjour,

Je me suis mis au batch pour rigoler un peu, bombe fork (seulement sur ma machine) etc...
Du coup j'ai fais un petit script mais il ne fait pas ce que je veux.
Pourriez vous m'aider ?
Peu importe ce que j'écris, il me lance la première vidéo qui est "video killed...".
J'aimerais savoir comment faire pour qu'il ne lance pas seulement cette vidéo.

@echo off
cls
echo Quelle chanson voulez-vous ?
set /p chanson =
if '%chanson%' == 'video killed the radio star'
goto buggles
if '%chanson%' == 'boys don t cry'
goto cure

:buggles
cd Video
"The Buggles - Video Killed The Radio Star.mp4"
goto fin

:cure
cd Video
"The Cure - Boys Don t Cry.mp4"
goto fin

:fin

Merci à vous.
A bientôt.

3 réponses

  1. karirovax Messages postés 3584 Statut Membre 215
     
    salut

    vous pouvez éxpliqué un peu plus ???

    et pour votre code il faut metre aprés la commande IF une autre commande dans la même ligne

    IF "%var% == "quel que chose" COMMANDE OPTION

    dans votre cas :

    @echo off
    cls
    echo Quelle chanson voulez-vous ?
    set /p chanson =
    if '%chanson%' == 'video killed the radio star' goto buggles
    if '%chanson%' == 'boys don t cry' goto cure

    :buggles
    cd Video
    "The Buggles - Video Killed The Radio Star.mp4"
    goto fin

    :cure
    cd Video
    "The Cure - Boys Don t Cry.mp4"
    goto fin

    :fin



    ;)
    0
  2. jujubassist Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
     
    Salut,

    Merci de ta réponse.

    Donc effectivement, le goto doit être sur la même ligne.
    Mais je pense que le système de goto ne marche pas, j'ai regardé sur internet pour la syntaxe mais peu importe ce que j'écris, il lancera the buggles.

    A+, Juju.
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re, bonjour

      jujubassist
      ... mais peu importe ce que j'écris, il lancera the buggles.
      oui si vous tapperez le mot exact il lance l'étiquette :buggles
      mais c normal

      explique en plus ?
      0
    2. jujubassist Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
       
      Eh bien lorsque je veux lancer the cure, j'écris "boys don t cry" mais il va quand même lancer les Buggles.
      En fait je crois qu'il rentre dans la première étiquette sans vraiment regarder ce que j'écris.
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      hello
      enlever l'espace avant le = et utiliser des guillemets
      set /p chanson=
      if "%chanson%" == "video killed the radio star" goto buggles
      if "%chanson%" == "boys don t cry" goto cure
      
      0
    4. jujubassist Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci, c'est nikel comme ca ;)
      C'était donc l'espace avant le =.
      Merci beaucoup à vous 2 ;)
      0
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      le piège avec <espace>= est que l'espace fait partie du nom de la variable !!
      C:> set /p a =
      hello
      
      C:> echo %a%
      %a%
      
      C:> echo %a %
      hello
      
      C:>
      
      0
  3. lusky16 Messages postés 630 Statut Membre 30
     
    il faut que tes " / " soient remplacés par des " \ "

    j'ai eu le même problème et maintenant mes batchs marchent bien
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re,

      oui luskey16 mais ceci est pour les chemins ou de quoi vous parlez
      0