Commande if then else sous batch

Fermé
Signaler
-
Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
-
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

Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
129
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
Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
129
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