Fichier batch qui ne marche pas apres premier choix
anonopsmada
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
anonopsmada Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
anonopsmada Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Donc je sais il n'est pas encore fini mais il devrait marcher jusqu'a la fin du batch... Mais il arrete de marcher a partir des premiers choix a faire... Meme si je fais le choix numero 1 qui correspond au reste du batch:
@echo off
Echo anti-virus artisanal 2.0
Echo Bienvenue...
Pause
:QUESTION
set/p "cho=>Vous voulez: 1- Enregistrer le produit... 2- Effectuer une analyse... 3- Quitter cet Antivirus..."
If %cho%==1 (
Echo Veuillez taper la cle d'enregistrement du produit...
:ENR
set/p "cle==Tapez la ici: "
if %cle%==Azerty12345 (
Echo Cle valide...
:AZERTY
set/p "aze=>Voulez vous revenir dans le menu principal? (O pour Oui et N pour Non) "
if %aze%==O (
Echo Vous allez repartir sur le menu principal...
Echo Merci d'avoir enregistre ce produit...
Goto :QUESTION
) Else if %aze%==N (
:AZERTYUIOP
Echo Voulez-vous quitter cet Antivirus?
Set/p "azer=>Oui ou Non? (O/N) "
If %azer%==O (
Set/p "qs=>Etes-vous sur de quitter ce logiciel? (O/N) "
If %qs%==O (
exit
) ELSE if %qs%==N (
Vous allez être envoyé sur le menu principal...
Pause
Goto :QUESTION
) ELSE (
Echo ERREUR 001=CHOIX INVALIDE!
Pause
Goto :AZERTYUIOP
Donc je sais il n'est pas encore fini mais il devrait marcher jusqu'a la fin du batch... Mais il arrete de marcher a partir des premiers choix a faire... Meme si je fais le choix numero 1 qui correspond au reste du batch:
@echo off
Echo anti-virus artisanal 2.0
Echo Bienvenue...
Pause
:QUESTION
set/p "cho=>Vous voulez: 1- Enregistrer le produit... 2- Effectuer une analyse... 3- Quitter cet Antivirus..."
If %cho%==1 (
Echo Veuillez taper la cle d'enregistrement du produit...
:ENR
set/p "cle==Tapez la ici: "
if %cle%==Azerty12345 (
Echo Cle valide...
:AZERTY
set/p "aze=>Voulez vous revenir dans le menu principal? (O pour Oui et N pour Non) "
if %aze%==O (
Echo Vous allez repartir sur le menu principal...
Echo Merci d'avoir enregistre ce produit...
Goto :QUESTION
) Else if %aze%==N (
:AZERTYUIOP
Echo Voulez-vous quitter cet Antivirus?
Set/p "azer=>Oui ou Non? (O/N) "
If %azer%==O (
Set/p "qs=>Etes-vous sur de quitter ce logiciel? (O/N) "
If %qs%==O (
exit
) ELSE if %qs%==N (
Vous allez être envoyé sur le menu principal...
Pause
Goto :QUESTION
) ELSE (
Echo ERREUR 001=CHOIX INVALIDE!
Pause
Goto :AZERTYUIOP
A voir également:
- Fichier batch qui ne marche pas apres premier choix
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier batch - Guide
- Comment réduire la taille d'un fichier - Guide
6 réponses
Bonjour!
Pour commencer, il serait gentil de ta part de mettre ton code entre les balises "code" pour qu'il apparaisse comme le code ci-dessous ;D
Sinon, ton batch comporte quelques problemes en effet :
- Tes set /p sont mal orthographiés : c'est pas "set/p" mais "set /p".
- La suite des set /p n'est pas bonne non plus : ce n'est pas set /p "mavariable=>Rentre les données " mais set /p mavariable="Rentre les données "
- Si tu veux faire afficher le signe > ou <, il faut que tu place un ^ avant pour pas que l'ordi ne confonde avec le signe de redirection ">". Tu remarquera que j'en ai utilisé dans les set /p pour une raison esthétique.
- Tes if ne sont pas super... Si tu veux faire un if avec des chiffres, c'est bon, mais si c'est avec des lettres, il faut faire if "%var% = .... et non pas if %var% = ... . De plus, il faut que tu mettes un /i pour qu'il ne respecte pas la casse, c'est à dire qu'il te permette de répondre "o" et pas forcement "O". Par contre, pas de /i pour le mot de passe, car tu veux qu'il n'admette que Azerty12345 et pas azerty1235.
Voici les rectifications, bonne chance! ;p
Pour commencer, il serait gentil de ta part de mettre ton code entre les balises "code" pour qu'il apparaisse comme le code ci-dessous ;D
Sinon, ton batch comporte quelques problemes en effet :
- Tes set /p sont mal orthographiés : c'est pas "set/p" mais "set /p".
- La suite des set /p n'est pas bonne non plus : ce n'est pas set /p "mavariable=>Rentre les données " mais set /p mavariable="Rentre les données "
- Si tu veux faire afficher le signe > ou <, il faut que tu place un ^ avant pour pas que l'ordi ne confonde avec le signe de redirection ">". Tu remarquera que j'en ai utilisé dans les set /p pour une raison esthétique.
- Tes if ne sont pas super... Si tu veux faire un if avec des chiffres, c'est bon, mais si c'est avec des lettres, il faut faire if "%var% = .... et non pas if %var% = ... . De plus, il faut que tu mettes un /i pour qu'il ne respecte pas la casse, c'est à dire qu'il te permette de répondre "o" et pas forcement "O". Par contre, pas de /i pour le mot de passe, car tu veux qu'il n'admette que Azerty12345 et pas azerty1235.
Voici les rectifications, bonne chance! ;p
@echo off Echo anti-virus artisanal 2.0 Echo Bienvenue... Pause :QUESTION set /p cho="Vous voulez: 1- Enregistrer le produit... 2- Effectuer une analyse... 3- Quitter cet Antivirus... ^> " If %cho%==1 ( Echo Veuillez taper la cle d'enregistrement du produit... :ENR set /p cle="Tapez la ici: ^> " if "%cle%"==Azerty12345 ( Echo Cle valide... :AZERTY set /p aze="Voulez vous revenir dans le menu principal? (O pour Oui et N pour Non) ^> " if /i "%aze%"==O ( Echo Vous allez repartir sur le menu principal... Echo Merci d'avoir enregistre ce produit... Goto :QUESTION ) Else if /i "%aze%"==N ( :AZERTYUIOP Echo Voulez-vous quitter cet Antivirus? Set/p azer="Oui ou Non? (O/N) ^> " If /i "%azer%"==O ( Set /p qs="Etes-vous sur de quitter ce logiciel? (O/N) ^> " If /i "%qs%"==O ( exit ) ELSE if /i "%qs%"==N ( Vous allez être envoyé sur le menu principal dans quelques secondes... ping localhost -n 3>nul Goto :QUESTION ) ELSE ( Echo ERREUR 001=CHOIX INVALIDE! Pause Goto :AZERTYUIOP
Euh.. Je l'essaye tout a l'heure. Merci de m'avoir aider.. Mais il faut aussi esperer que ça marche... :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question