Problème batchfile

Résolu
mikmuk Messages postés 200 Statut Membre -  
 LUDO -
Bonjour,
je me suis donné l'idée de créer une liste de choses à avoir sur moi donc je fais mon batch mais là ça fait des plombes que je rame à trouver l'erreur

Voici mon code:

@echo off
color 0a
echo appuye sur une touche pour verification de tes affaires
pause >nul
:un
echo as-tu ton porte-monnaie
if "%1"=="oui" goto deux
if "%1"=="non" (
echo prends ton porte-monaie.
goto deux)
:deux
echo as-tu ton htc
if "%1"=="oui" goto trois
if "%1"=="non" (
echo prends ton htc.
goto deux)
:trois
echo as-tu ton nokia
if "%1"=="oui" goto quatre
if "%1"=="non" (
echo prends ton nokia.
goto trois)
:quatre
echo as-tu tes clopes
if "%1"=="oui" goto cinq
if "%1"=="impossible" goto sept
if "%1"=="non" (
echo prends tes clopes.
goto quatre)
:cinq
echo as-tu ton briquet
if "%1"=="oui" goto six
if "%1"=="impossible" goto huit
if "%1"=="non" (
echo prends ton briquet.
goto cinq)

:six
echo C'est bon tu as tout c'est cool maintenant grouille toi d aller prendre le bus.
pause >nul
goto fin

:sept
echo MERDE bon tu en demenderas.
goto six

:huit
echo bon c est pas si grave tu en demenderas un.
goto six

:fin


L'erreur que je vois surtout c'est que ça ne me demande pas d'écrire le paramètre 1

Merci de prendre le temps de m'aider =)

2 réponses

  1. LUDO
     
    salut,

    je comprends pas...
    Tu veux que les questions soient posées au fur et à mesure dans la fenêtre DOS???
    Ou alors tu veux juste passer un parametre au lancement du script?

    je pense que tu veux faire ça:

    @echo off
    color 0a
    echo appuye sur une touche pour verification de tes affaires
    pause >nul
    :un
    echo.
    set /p PORTEMONNAIE=as-tu ton porte-monnaie?
    if "%PORTEMONNAIE%"=="oui" goto deux
    if "%PORTEMONNAIE%"=="non" (
    echo prends ton porte-monaie.
    goto un)
    echo Réponds par "oui" ou par "non".
    goto un
    :deux
    echo.
    set /p HTC=as-tu ton htc?
    if "%HTC%"=="oui" goto trois
    if "%HTC%"=="non" (
    echo prends ton htc.
    goto deux)
    echo Réponds par "oui" ou par "non".
    goto deux
    :trois
    echo.
    set /p NOKIA=as-tu ton nokia?
    if "%NOKIA%"=="oui" goto quatre
    if "%NOKIA%"=="non" (
    echo prends ton nokia.
    goto trois)
    echo Réponds par "oui" ou par "non".
    goto trois
    :quatre
    echo.
    set /p CLOPES=as-tu tes clopes?
    if "%CLOPES%"=="oui" goto cinq
    if "%CLOPES%"=="impossible" goto sept
    if "%CLOPES%"=="non" (
    echo prends tes clopes.
    goto quatre)
    echo Réponds par "oui", par "non" ou par "impossible".
    goto quatre
    :cinq
    echo.
    set /p BRIQUET=as-tu ton briquet?
    if "%BRIQUET%"=="oui" goto six
    if "%BRIQUET%"=="impossible" goto huit
    if "%BRIQUET%"=="non" (
    echo prends ton briquet.
    goto cinq)
    echo Réponds par "oui", par "non" ou par "impossible".
    goto cinq

    :six
    echo.
    echo C'est bon tu as tout c'est cool maintenant grouille toi d aller prendre le bus.
    pause >nul
    exit

    :sept
    echo.
    echo MERDE bon tu en demanderas.
    goto cinq

    :huit
    echo.
    echo bon c est pas si grave tu en demanderas un.
    goto six

    est-ce que ça te correspond??
    0
    1. mikmuk Messages postés 200 Statut Membre 7
       
      Donc en gros il faut décider un nom pour chaque lignes ok je vois merci

      moi j'avais essayé de faire ca:

      @echo off
      color 0a
      echo appuye sur une touche pour verification de tes affaires
      pause >nul
      :un
      set /P choix= As-tu ton porte monnaie ?
      If /I %choix%==oui (
      goto deux
      ) else (
      If /I %choix%==non (
      echo Prend ton porte monnaie !
      goto un
      )
      :deux
      set /P choix= As-tu ton HTC ?
      If /I %choix%==oui (
      goto trois
      ) else (
      If /I %choix%==non (
      echo Prend ton HTC !
      goto deux
      )
      :trois
      set /P choix= As-tu ton Nokia ?
      If /I %choix%==oui (
      goto quatre
      ) else (
      If /I %choix%==non (
      echo Prend ton Nokia !
      goto trois
      )
      :quatre
      set /P choix= As-tu tes clopes ?
      If /I %choix%==oui (
      goto cinq
      ) else (
      If /I %choix%==impossible (
      goto sept
      ) else (
      If /I %choix%==non (
      echo Prend tes clopes !
      goto quatre
      )
      :cinq
      set /P choix= As-tu ton briquet ?
      If /I %choix%==oui (
      goto six
      ) else (
      If /I %choix%==impossible (
      goto huit
      ) else (
      If /I %choix%==non (
      echo Prend ton briquet !
      goto cinq
      )
      
      :six
      echo C'est bon tu as tout c'est cool maintenant grouille toi d aller prendre le bus.
      pause >nul
      goto fin
      
      :sept
      echo MERDE bon tu en demenderas.
      goto six
      
      :huit
      echo bon c est pas si grave tu en demenderas un.
      goto six
      
      :fin


      (juste question de comprendre peux-tu m'expliquer pourquoi cela s'arrêtait juste après avoir tapé le premier oui oO ?)
      0
  2. LUDO
     
    ok c'est dans ton if - else (il te manque une parenthese ==> celle en gras regarde ton else n'est pas terminé...) pareil pour tout tes autres if - else...

    If /I %choix%==oui (
    goto deux
    ) else (
    If /I %choix%==non (
    echo Prend ton porte monnaie !
    goto un
    )
    )

    En revanche cela marche avec la variable "choix" à chaque fois mais on peut changer de variable à chaque fois... La j'en avais mis plusieurs pour bien te faire comprendre l'utilisation des variables...
    Mais visiblement ça va...

    Voili voilou...
    0