La condition du IF ne s'applique pas [Résolu/Fermé]

Signaler
-
Messages postés
564
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
4 janvier 2014
-
Bonjour,

Je cherche à faire converger une variable vers une valeur en me basant sur un test. Ici le test est simplement "inférieur à R?". Ici la boucle for comprend 2 itérations pour le débogage mais à terme il y en aura 20.
.
Voici le programme:
.
@echo on
rem Initialisation des varaiables
set /A R=102 rem valeur recherchée
set /A test=10
set /A Prec=10
set /A incre=1000
set /A test1=0
set /A delta=1000
set petit="faux"
pause
rem boucle pour convergence
for %%A in ( 1 2 ) do (
rem Lancement calcul valeur test
If /i %test% LEQ %R% set petit="vrai"
echo %petit%
If /i %petit%=="vrai" set test1 = %test%
echo %test1%

If /i %petit%=="faux" set /A incre = %incre%/10
echo %incre%

set /A test = %test1% + %incre%
echo %test%
set /A delta = %test% - %test1%
echo %delta%
rem if %delta% LEQ %Prec% ( echo "solution trouvée %test%" )

set petit="faux"
pause
)
pause
.
Lorsqu'on le lance on aperçoit que les conditions des IFs ne s'appliquent jamais.
.
Avec les variables test=10 et R=102:
If /i %test% LEQ %R% set petit="vrai"
echo %petit%
devrait être vrai or la fonction "echo" nous montre que la valeur reste inchangée
.
Et aussi
If /i %petit%=="faux" set /A incre = %incre%/10
echo %incre%
Vu que la première condition ne s'est pas exécuté on obtient "faux"=="faux" or la variable est toujours égale à 1000 et non à 100.
.
.
J'imagine que c'est une erreur de syntaxe sur le IF car les fonctions soumises à condition fonctionnent si elles sont lancées séparément.
.
J'espère que quelqu'un pourra m'aider sur mon problème, Merci d'avance!


2 réponses

Messages postés
564
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
4 janvier 2014
21
Salut

En testant, il y a un soucis sur la boucle FOR.
Quand on l'enlève, "petit" passe bien à "vrai". Par contre, "test1" ne passe pas à 10.
Messages postés
9
Date d'inscription
mercredi 10 octobre 2012
Statut
Membre
Dernière intervention
11 octobre 2012

Merci, désolé mais j'avais dupliquer le post. Le problème venait bien du FOR et voici la façon de contourner le problème:
https://forums.commentcamarche.net/forum/affich-26231640-batch-la-condition-du-if-ne-s-applique-pas#p26232528
Messages postés
564
Date d'inscription
dimanche 25 avril 2010
Statut
Membre
Dernière intervention
4 janvier 2014
21
Ok pas de soucis.

Passe le post en résolu. Bonne continuation.