[Batch] Vérifier présence caractères dans variable [Résolu/Fermé]

Signaler
Messages postés
43
Date d'inscription
mercredi 27 mai 2015
Statut
Membre
Dernière intervention
27 octobre 2018
-
Messages postés
13535
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 juin 2021
-
Bonjour,

Je suis confronté à un problème car je souhaiterais réussir à ajouter une option telle que lorsqu'une certaine chaîne de caractère est rentré alors aller à un label. C'est assez compliqué à expliquer mais voilà le principe.
En fait, si la personne mets dans la variable choix: 1 /random alors après avoir effectuer ce qui se trouve dans le label 1, aller au label Random et effectuer les actions. Or, je n'arrive pas à faire cela.
On aurait donc: %choix%=1 /random

@echo off

chcp 28591 > nul

:menu
cls

set /p choix="Quelque chose à  dire ? "

if %choix%==0 goto :0
if %choix%==1 goto :1
if %choix%==end goto :end

goto :menu

:0
echo Tu as dit 0
pause > nul
goto :end

:1
echo Tu as dit 1
pause > nul
goto :end


:Random
cls
echo %RANDOM%
pause

:end
echo C'est la fin
pause
exit

1 réponse

Messages postés
13535
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 juin 2021
4 399
Bonsoir,

C'est très simple, il n'y a pas que le IF qui permet de faire une condition, il y a également && et || :

@echo off

chcp 28591 > nul

:menu
cls

set /p choix="Quelque chose à dire ? "

echo %choix% | find "0" && goto :0
echo %choix% | find "1" && goto :1
if %choix%==end goto :end

goto :menu

:0
echo Tu as dit 0
echo %choix% | find "random" && goto :Random
pause > nul
goto :end

:1
echo Tu as dit 1
echo %choix% | find "random" && goto :Random
pause > nul
goto :end


:Random
cls
echo %RANDOM%
pause

:end
echo C'est la fin
pause
exit

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
43
Date d'inscription
mercredi 27 mai 2015
Statut
Membre
Dernière intervention
27 octobre 2018

Bonsoir,

Je vous remercie, c'est exactement ce que je recherchais mais c'est étrange, je ne l'ai trouvé nulle part.

J'aimerais juste savoir s'il était possible que cela ne me renvoie pas ce qui se trouve dans la variable.
(J'aimerais simplement que ça vérifie que dans la variable il y a random mais sans m'écrire dans la console ce que contient la variable %choix%)

J'espère avoir été assez claire.
Messages postés
13535
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 juin 2021
4 399 >
Messages postés
43
Date d'inscription
mercredi 27 mai 2015
Statut
Membre
Dernière intervention
27 octobre 2018

C'est possible en redirigeant la sortie vers nul, comme ceci :

@echo off

chcp 28591 > nul

:menu
cls

set /p choix="Quelque chose à dire ? "

echo %choix% | find "0" >nul && goto :0
echo %choix% | find "1" >nul && goto :1
if %choix%==end goto :end

goto :menu

:0
echo Tu as dit 0
echo %choix% | find "random" >nul && goto :Random
pause > nul
goto :end

:1
echo Tu as dit 1
echo %choix% | find "random" >nul && goto :Random
pause > nul
goto :end


:Random
cls
echo %RANDOM%
pause

:end
echo C'est la fin
pause
exit
Messages postés
43
Date d'inscription
mercredi 27 mai 2015
Statut
Membre
Dernière intervention
27 octobre 2018

Bonsoir,

Merci beaucoup, c'est exactement ce que je souhaitais !

Bonne soirée !
Messages postés
13535
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 juin 2021
4 399 >
Messages postés
43
Date d'inscription
mercredi 27 mai 2015
Statut
Membre
Dernière intervention
27 octobre 2018

Merci bonne soirée également.