Problème batchfile

Résolu/Fermé
mikmuk Messages postés 156 Date d'inscription dimanche 22 août 2010 Statut Membre Dernière intervention 17 janvier 2013 - 26 déc. 2011 à 17:35
 LUDO - 28 déc. 2011 à 15:35
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

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
mikmuk Messages postés 156 Date d'inscription dimanche 22 août 2010 Statut Membre Dernière intervention 17 janvier 2013 7
28 déc. 2011 à 14:33
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
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