Fichier Batch : Choix vide

cloud@89 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
hcp7kuz Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
essayer
IF "%domaine%"=="" 
0
Menjote Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   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
0
hcp7kuz Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   23
 
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