Fichier Batch : Choix vide

Fermé
cloud@89 Messages postés 1 Date d'inscription lundi 14 décembre 2015 Statut Membre Dernière intervention 14 décembre 2015 - Modifié par baladur13 le 14/12/2015 à 15:44
hcp7kuz Messages postés 243 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 - 18 déc. 2015 à 22:27
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,
@+
A voir également:

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 14/12/2015 à 16:48
hello
essayer
IF "%domaine%"=="" 
0
Menjote Messages postés 14 Date d'inscription vendredi 1 novembre 2013 Statut Membre Dernière intervention 18 décembre 2015 1
Modifié par Menjote le 17/12/2015 à 21:31
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
0
hcp7kuz Messages postés 243 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 23
18 déc. 2015 à 22:27
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
0