Batch : comparer deux variables
Résolubrucine Messages postés 24845 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en batch et pour me faire la main, j'ai écrit ça :
@echo off
SET /A cpt = 0
SET /A nb_a_supp=2
setlocal enableextensions enabledelayedexpansion
for %%i in (1,2,3,4,5) do (
SET /A cpt+=1
IF %cpt% LEQ %nb_a_supp% echo cpt egale a !cpt! et inferieur a !nb_a_supp!
)
pause
L'idée est de vérifier si j'ai bien compris les comparaisons mais à priori non :(
Normalement, le script ne devrait m'afficher que
cpt egale a 1 et inferieur a 2
cpt egale a 2 et inferieur a 2
Or il m'affiche :
cpt egale a 1 et inferieur a 2
cpt egale a 2 et inferieur a 2
cpt egale a 3 et inferieur a 2
cpt egale a 4 et inferieur a 2
cpt egale a 5 et inferieur a 2
Une idée ?
D'avance, merci !
Windows / Chrome 117.0.0.0
1 réponse
-
Bonjour,
Tu utilises le bon identificateur de variable pour l'echo mais pas pour le test
IF !cpt! LEQ !nb_a_supp! echo cpt egale a !cpt! et inferieur a !nb_a_supp!
-
Bonjour,
ne fonctionne de toute façon pas chez moi variables retardées ou pas (il y a un problème de syntaxe empêchant l'exécution).
Les variables retardées, c'est souvent piégeux, alternative via une sous-routine CALL:
@echo off SET cpt=0 SET nb_a_supp=2 for %%i in (1,2,3,4,5) do SET count=%%i & CALL :PROCESS pause GOTO EOF :PROCESS SET/A cpt1=cpt+count IF %cpt1% LEQ %nb_a_supp% echo cpt egale a %cpt1% et inferieur ou egal a %nb_a_supp% exit /b :EOF
-
-
-
