Problème avec goto :eof [Résolu]

Signaler
Messages postés
38
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
5 mai 2021
-
Messages postés
38
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
5 mai 2021
-
Bonjour,

j'ai un problème dans un programme batch quand j'utilise
call :temps affichage
sa marche mais lorsque j'utilise
goto :temps affichage
sa ne me remet pas au menu. si en enlève le
goto :eof
alors le
call
ne revient plus et donc n'effectue pas le
reset



@echo

if not defined a set a=0

:reset
code -------------------------------
code -------------------------------
code -------------------------------
timeout /t %a% /nobreak>nul

:menu
set /p choix= 1/config 2/temps affichage
if /I "%choix%"=="1" goto :config
if /I "%choix%"=="2" goto :temps affichage


:config
set /p choix=Quelle variable voulez vous changer ? :
if /I "%choix%"=="1" goto :autre
if /I "%choix%"=="2" call :temps affichage
goto :reset

:temps affichage
set /p ab=le temps d'affichage
goto :eof
goto :menu

4 réponses

Messages postés
13421
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 mai 2021
4 327
Bonjour,

Essaie comme ceci :

@echo

if not defined a set a=0

:reset
code -------------------------------
code -------------------------------
code -------------------------------
timeout /t %a% /nobreak>nul

:menu
set /p choix= 1/config  2/temps affichage
if /I "%choix%"=="1" goto :config
if /I "%choix%"=="2" call :temps
goto :menu

:config
set /p choix=Quelle variable voulez-vous changer ? : 
if /I "%choix%"=="1" goto :autre
if /I "%choix%"=="2" call :temps
goto :reset

:temps
set /p ab=le temps d'affichage
goto :eof



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
Messages postés
38
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
5 mai 2021

rebonjour,
je souhaite garder le
goto :temps affichage
de
:menu
set /p choix= 1/config 2/temps affichage
if /I "%choix%"=="1" goto :config
if /I "%choix%"=="2" goto :temps affichage

et le
call :temps
de
:config
set /p choix=Quelle variable voulez vous changer ? :
if /I "%choix%"=="1" goto :autre
if /I "%choix%"=="2" call :temps affichage
goto :reset

En faite c'est la fin qui pose problème
:temps
set /p ab=le temps d'affichage
goto :eof
goto :menu
car avec le
call
il marche parfaitement mais lorsque j'utilise le
goto
ça me fait quitté le programme. Or il faudrait modifié la fin pour qu'il puisse changer la destination de l'étiquette lorsque on utilises
call
ou
goto
par exemple genre un truc comme ça
if EXIST call :temps affichage goto :eof else (goto :menu)
ou commande qui permet de savoir si
call
est utiliser en ce moment dans cet étiquette
:temps affichage
pour qu'il puisse basculer directement sur
goto :menu
si
call :temps affichage
n'est pas utiliser en ce moment.
Messages postés
13421
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 mai 2021
4 327
Je pense que ça devrait le faire :
:temps affichage
set /p ab=le temps d'affichage
if not "%~1"=="" (goto :eof) else (goto :menu)
Messages postés
38
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
5 mai 2021

merci ça marcher.
ça signifie quoi le
%~1
car je sais que
%0
signifie entre guillemet le chemin ainsi que le nom du programme actuelle.
Messages postés
13421
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
5 mai 2021
4 327
%1 désigne le premier paramètre, dans ton cas le premier paramètre vaut : affichage

J'ai l'impression que tu ne maîtrises pas trop la commande CALL
Messages postés
38
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
5 mai 2021

ok merci,
c'est vrai sur les commandes
call
et
for
je les maîtrises pas encore tout ta fait