Fichier Batch : Choix vide [Fermé]

Signaler
Messages postés
1
Date d'inscription
lundi 14 décembre 2015
Statut
Membre
Dernière intervention
14 décembre 2015
-
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
-
Bonjour,

Je souhaite faire un fichier Bat (permettant de choisir le domaine souhaité) et voudrait prendre en compte toutes les possibilités mais sans succès.

Voici le code :
echo Quel domaine DOMAINE1 ou DOMAINE2 ?
echo 1. DOMAINE1
echo 2. DOMAINE2
set /p domaine= - Choix du domaine :

IF NOT %domaine%==1 IF /i NOT %domaine%==2 goto :choix_domaine
IF %domaine%==1 set domaine=DOMAINE1
IF %domaine%==2 set domaine=DOMAINE2


Dans le code actuel, l'utilisateur peut choisir son domaine et s'il fait un mauvais choix il est redirigé au début.
Par contre, le cas ou l'utilisateur ne fait pas de choix n'est pas pris en compte.

Si l'utilisateur valide sans avoir choisit, le script bloque.

Le IF %domaine%=="" ne fonctionne pas.

Savez-vous comment (et si c'est possible) de gérer le cas où l'utilisateur ne fait pas de choix ?

Merci pour votre aide,
@+

3 réponses

Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 306
hello
essayer
IF "%domaine%"=="" 
Messages postés
13
Date d'inscription
vendredi 1 novembre 2013
Statut
Membre
Dernière intervention
18 décembre 2015
1
C'est juste que si l'utilisateur ne fait pas de choix alors la variable est nul et il sera impossible de lui imposer une condition.

Dans ce cas il va donc falloir rajouter une valeur à cette variable avant de lui imposer des conditions, comme sa même si l'utilisateur ne fait pas de choix la variable possédera donc une valeur et sera apte à recevoir des conditions.

Il faut donc mettre à la variable %domaine% un valeur quelconque sauf 1 ou 2 , bien sur car ils sont des éléments de réponse dans ton script

Comme sa ta conditions :


IF NOT %domaine%==1 IF /i NOT %domaine%==2 goto :choix_domaine

renverra illico l'utilisateur au début car la variable %domaine% qui possédera maintenant une valeur ne sera ni égal à 1 ni égal à 2

Il faut bien sur que tu ajoutes une valeur à cette variable , avant que l'utilisateur puisse en choisir une , car si tu la met après le choix de l'utilisateur sera reset par le tiens.

Voilà dis moi si il y a quelque chose que tu n'a pas compris ;)

Le script donne donc :


@echo off
:choix_domaine
cls
echo Quel domaine DOMAINE1 ou DOMAINE2 ?
echo 1. DOMAINE1
echo 2. DOMAINE2
set domaine=3
set /p domaine= - Choix du domaine :
IF NOT %domaine%==1 IF /i NOT %domaine%==2 goto choix_domaine
IF %domaine%==1 set domaine=DOMAINE1
IF %domaine%==2 set domaine=DOMAINE2
GOTO suite
pause > nul
:suite
cls
echo Salut
pause > nul
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
18
Salut,
Tu as juste à marquer ce que tu veux faire sous ton code :

@Echo off
cls
:choix_domaine
cls
echo Quel domaine, DOMAINE1 ou DOMAINE2 ?
echo 1. DOMAINE1
echo 2. DOMAINE2
set /p domaine= - Choix du domaine :
IF NOT %domaine%==1 IF /i NOT %domaine%==2 goto :mauvais_choix
IF %domaine%==1 goto :next1
IF %domaine%==2 goto :next2
echo Vous n'avez pas entrer de choix...
pause
goto :choix_domaine
:next1
set domaine=DOMAINE1
echo Vous avez choisi le domaine 1
pause
exit
:next2
set domaine=DOMAINE2
echo Vous avez choisi le domaine 2
pause
exit
:mauvais_choix
cls
echo Mauvais choix, veuillez reessayer.
pause
goto :choix_domaine


++
hcp7kuz