Problème avec goto :eof

Résolu/Fermé
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 - Modifié le 2 mai 2021 à 11:41
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 - 5 mai 2021 à 21:58
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
A voir également:

4 réponses

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 2 mai 2021 à 23:34
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


0
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 11
Modifié le 4 mai 2021 à 21:20
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.
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
5 mai 2021 à 10:38
Je pense que ça devrait le faire :
:temps affichage
set /p ab=le temps d'affichage
if not "%~1"=="" (goto :eof) else (goto :menu)
0
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 11
5 mai 2021 à 21:48
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.
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 5 mai 2021 à 21:56
%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
0
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 11
Modifié le 5 mai 2021 à 22:05
ok merci,
c'est vrai sur les commandes
call
et
for
je les maîtrises pas encore tout ta fait
0