[Batch] Petit probleme

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. 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



    ;)
    1. 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.
      1. 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 ?
      2. 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.
      3. Contributeur
        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
        
      4. Merci, c'est nikel comme ca ;)
        C'était donc l'espace avant le =.
        Merci beaucoup à vous 2 ;)
      5. Contributeur
        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:>
        
    2. il faut que tes " / " soient remplacés par des " \ "

      j'ai eu le même problème et maintenant mes batchs marchent bien
      1. Re,

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