BATCH:La condition du IF ne s'applique pas
Résolu
JEC_noob
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Tout d'abord, désolé pour le doublon de POST mais je voulais préciser dans le titre qu'il s'agit de BATCH et entre temps je suis devenu membre...
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:
Lorsqu'on le lance on aperçoit que les conditions des IFs ne s'appliquent jamais.
Avec les variables test=10 et R=102:
devrait être vrai or la fonction "echo" nous montre que la valeur reste inchangée
Et aussi
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!
Tout d'abord, désolé pour le doublon de POST mais je voulais préciser dans le titre qu'il s'agit de BATCH et entre temps je suis devenu membre...
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!
A voir également:
- BATCH:La condition du IF ne s'applique pas
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Renommer tous les fichiers d'un dossier - Forum Windows
- Batch picture resizer - Télécharger - Divers Photo & Graphisme
3 réponses
hello
essayer avec
essayer avec
@echo on setlocal enableDelayedExpansion rem Initialisation des varaiables ...et des ! à la place des % dans une boucle FOR
for %%A in ( 1 2 ) do ( rem Lancement calcul valeur test If /i !test! LEQ !R! set petit="vrai" echo !petit! ...