Commande if then else sous batch

Fermé
Wombata - 6 mai 2011 à 08:13
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 - 6 mai 2011 à 13:12
Bonjour,
Je me suis lancé dans un petit peu de programmation sous batch mais j'ai un problème avec les if/then/else (je ne sais pas vraiment les mettre en oeuvre). Donc voici une ligne de code de mon nouveau né :

echo Bonjour. Voulez vous continuer, ou est-ce une erreur ? [y/n]
input
If input=y
then=pause
else=quit


Je voudrais juste savoir comment modifier mon if/then/else pour qu'il puisse fonctionner normalement, car quand je marque y, puis j'appuis sur entrer, mon batch se ferme.

Merci de votre future aide.


1 réponse

dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 128
6 mai 2011 à 09:58
Bonjour,

Quelques rectifications en Batch Windows :


@Echo off

input

if /I "%input%"=="y" (echo choix Yes&pause) else (echo On quitte le batch...&pause&exit)

attention, la dernière ligne est sur une seule ligne.

Un test de variable est toujours entre % et mettre entre-guillemets au cas où elle ne serait pas renseignée. Ensuite tout ce qui est dans la première parenthès indique l'action 1 qui sera exécutée si le test de la variable est OK sinon on exécute l'autre parenthèse après le Else. On remarquera me & qui permet d'enchaîner des commandes. Le /I après le IF permet de s'affranchir sir la réponse Y est mininuscule ou majuscule (donc dans ce cas c'est pareil).

Pour avoir toute la syntaxe du IF saisir dans une boîte DOS : IF /?

Bon courage.
2
Merci de ta réponse, c'est toujours plaisant d'avoir de l'aide aussi rapidement :).
0
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 128
6 mai 2011 à 13:12
Pour l'input où tu veux poser une question et attends une réponse, tu peux utiliser la commande SET (dans une boîte DOS pour avoir la syntaxe, tu saisis : set /? ).

Exemple:

set /P rep= "Voulez-vous formater le disque (Y ou N) ?"

Ici on invite l'utilisateur à répondre à cette question et son résultat Y ou bien N sera mis dans la variable rep qui pourra ensuite être testée dans le IF de la ligne suivante. Le libellé de la question est toujours entre-guillemets. Comme on ne sait pas si la réponse est Y (oui) ou N (non) en majuscule ou en minuscule, alors on ajoute /I après le IF lorsqu'on teste la variable.
Avec la commande set on peut faire des calculs sur une variable (les quatre opérations de base + - * et / ) et même beaucoup plus et tellement d'autres choses....

Bonne continuation
0