114 votes

SI... OU SI... dans un fichier batch Windows

Existe-t-il un moyen d'écrire une instruction conditionnelle IF OU IF dans un fichier batch Windows ?

Par example:

 IF [%var%] == [1] OR IF [%var%] == [2] ECHO TRUE

62voto

zmbq Points 18714

Je ne pense pas. Utilisez simplement deux IF et GOTO la même étiquette :

 IF cond1 GOTO foundit
IF cond2 GOTO foundit

ECHO Didn't found it
GOTO end

:foundit
ECHO Found it!

:end

9voto

Cactus Points 1

Merci pour ce post, il m'a beaucoup aidé.

Je ne sais pas si cela peut aider mais j'ai eu le problème et grâce à vous j'ai trouvé ce que je pense être une autre façon de le résoudre basée sur cette équivalence booléenne :

"A ou B" est la même chose que "pas (pas A et pas B)"

Ainsi:

 IF [%var%] == [1] OR IF [%var%] == [2] ECHO TRUE

Devient:

 IF not [%var%] == [1] IF not [%var%] == [2] ECHO FALSE

6voto

dognose Points 5297

Même si cette question est un peu plus ancienne :

Si vous voulez utiliser if cond1 or cond 2 - vous ne devriez pas utiliser de boucles compliquées ou des trucs comme ça.

Simple, fournissez les deux ifs après l'autre combinés avec goto - c'est un ou implicite.

 //thats an implicit IF cond1 OR cond2 OR cond3
if cond1 GOTO doit
if cond2 GOTO doit
if cond3 GOTO doit

//thats our else.
GOTO end

:doit
  echo "doing it"

:end

Sans goto mais une action "inplace", vous pouvez exécuter l'action 3 fois, si TOUTES les conditions correspondent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X