Fichier Batch : Choix vide

cloud@89 Messages postés 1 Statut Membre -  
hcp7kuz Messages postés 238 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,
@+

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer
    IF "%domaine%"=="" 
    0
  2. Menjote Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
  3. hcp7kuz Messages postés 238 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