Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2227 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de "goto" en batch...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de "goto" en batch...

n°2035865
Hack39
Posté le 14-11-2010 à 13:20:11  profilanswer
 

  :hello:  !! Je reviens pour la deuxième fois, mais cette fois-ci c'est pour un problème en Batch. J'ai fait un script qui demande à l'utilisateur de rentrer un mot de passe. Si le mot de passe est incorrect, le programme lui redemande de le rentrer, jusqu'à ce que le code soit correct.... Voici le script :
 
 
 
@echo off
title Transferts bancaires
color a
echo.
echo Entrez le code secret de votre compte bancaire :
echo.
set /p code=
echo.
if "%code%"=="martin" (
:2
echo Code bon, pour lancer le transfert, appuyez sur une touche.
echo.
pause
dir /S
echo.
pause
) else if "%code%" NEQ martin (
goto :1
:1
echo.
echo Code non correct, essayez a nouveau :
echo.
echo.
set /p code=
echo.
if "%code%"=="martin" (
goto :2
) else goto :1
echo.
pause
 
  J'ai modélisé avec un faux transfert bancaire (pas du tout réaliste  :D ). Mon problème viens du fait que si je rentre le bon code, la commande dir /s s’exécute correctement, mais après, quand j'appuie sur une touche, il me dit que le code n'est pas bon, bref, je crois que c'est une boucle infinie...  :pt1cable:  
 
  Pouvez-vous m'aider s'il vous plaît, remarque, je viens de penser à un truc, peut être que si je mets un ":fin" et que je redirige mon programme après le dir /s vers cette ":fin" le programme se stoppera ?? Enfin, je test, mais merci d'avance pour votre aide si précieuse.
 
  Bonne journée à toutes e à tous ! :)


---------------
Hacker n'est pas du vol,
mood
Publicité
Posté le 14-11-2010 à 13:20:11  profilanswer
 

n°2035942
Ydalb
In Crêpes n' Cidre I Trust!
Posté le 15-11-2010 à 08:44:29  profilanswer
 

Salut,
 
Tu as un deuxième test "if %code%" == "martin" après ton else if, du coup, si le code est correct, il lit la ligne goto :2, et va donc dans ton premier "if" et re-exécute la commande dir /S, d'où la boucle infinie ...
 
Pour ton else if, pourquoi tu fait :  
goto :1
:1
Le goto :1 est inutile ?
 
Peut être que tu veux qqch comme ça :
 

Code :
  1. @echo off
  2. title Transferts bancaires
  3. color a
  4. :debut
  5. echo.
  6. echo Entrez le code secret de votre compte bancaire :
  7. echo.
  8. set /p code=
  9. echo.
  10. if "%code%"=="martin" (
  11. echo Code bon, pour lancer le transfert, appuyez sur une touche.
  12. echo.
  13. pause
  14. dir /S
  15. echo.
  16. pause
  17. ) else (
  18. echo.
  19. echo Code non correct, essayez a nouveau :
  20. echo.
  21. echo.
  22. goto :debut
  23. )


---------------
:o
n°2036018
breizhbugs
Posté le 15-11-2010 à 12:03:17  profilanswer
 

Salut,
Il manque une parenthèse fermante également (celle du if (...NEQ martin))...


---------------
Seul Google le sait...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de "goto" en batch...

 

Sujets relatifs
[RESOLU] vtable errorproblème de Thread java
Problème de temps d'execution qui "jump"Problème au lancement index.php
probleme saut de ligne avec scanfPetit problème lors de la création d'une table.
Problème avec document.getElementByIdProblème PHP / Cron serveur / useradd
Problème PHP / Cron serveur / useraddproblème avec mon renderer
Plus de sujets relatifs à : Problème de "goto" en batch...


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR