Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
variable de boucle for utilisable dans un if ?
Auteur Message
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Bonjour,

je débute et bricole juste un petit peu.
J'ai une question concernant les variables d'une boucle for écrit en format %%A et leur utilisation dans une condition de la boucle for comme variable.
Je ne sais pas si c'est possible ou de quelle façon l'écrire.

Peut être sauriez vous me dire comment m'y prendre ?

voici l'extrait du code :

Citation:

for /f "tokens=1,2 delims= " %%A in (files.txt) do (
if not exist ..\%%A @set %%B=non-trouvé
if exist ..\%%A if not %%%B%==non-trouvé (
FC ..\%%A source\%%A | Find "aucune" >nul
if errorlevel 0 if not errorlevel 1 @set %%B=identique a la source
if errorlevel 1 if not errorlevel 2 @set %%B=différent de la source
)

Dans le code j'appelle un fichier avec le chemin+nom des fichiers a vérifier en %%A et le groupe d'objet auquel les fichiers appartiennent en variable %%B
>> exemple : data\bm_ene_common_all.bml m4

Si le fichier est absent je l'écris en dans la variable du nom de %%B (ici %m4% a donc une valeur que j'affiche après dans un echo ou l'interface AGraf)
si le fichier est présent je le compare à la source pour vérifier si identique ou différent de la source.
rebelotte en boucle pour les fichier suivants.

Par contre la condition que j'essaie de mettre en place : si un fichier du groupe est absent, noter le groupe absent (donc vérifier si %m4% est égal à mon résultat "non-trouvé")
(sinon si le dernier fichier du groupe est présent mais pas le reste, l'info retournée est erronée)

merci pour vos réponses



Dernière édition par klausvg le Jeu 21 Aoû 2014 - 20:14; édité 2 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Salut,
par exemple, en adaptant ceci, dis moi si c'est ce qu'il te faut
Code:

if exist %%A if exist %%B (
echo OK) else (echo Absent)

(à inclure dans le for pour qu'existent encore %%A %%B)




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Merci pour ta réponse.

Ton code permets de vérifier si un fichier ou dossier existe par contre ce n'est pas ce que je veux faire.
Ma variable %%B retourne un nom dans la boucle for (ce n'est pas un chemin vers un fichier).
Dans l'exemple de mon explication après le code c'est m4 (groupe de modification 4)
Ensuite en faisant un set dessus je crée une variable %m4% à partir du nom du groupe. (comme ça pour chaque groupe je peux retourner un état de présence avec cette variable, exemple ECHO le groupe m4 est %m4% )
Or ensuite, si j'écris IF %%B=non-trouvé :
- ca revient a écrire IF m4=non-trouvé
- et non pas IF %m4%=non-trouvé
Ca me retourne le nom , pas la variable donc ça ne me retournera jamais une valeur vrai.

J'ai essayé plusieurs mises en formes avec des "%%%B%"ou %(%%B)% etc.. mais pour l'instant rien trouvé qui fonctionne.


PS : j'ai édité mon 1er post car la balise code ne laissait pas passer le texte en rouge, qui est celui qui me pose problème.



Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Déjà tu peux pas faire
Code:
@set %%A=...
c'est pas possible




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
si le "set" j'y suis arrivé. Embarassed

j'ai bien un résultat en retour.

j'ai pensé rajouter une colonne %m4% etc dans mon fichier file.txt et faire un appel de if %%C mais ca ne semble pas vouloir fonctionner^^.



Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Pour moi ça marche pas Laughing je verrais ça demain bonne nuit Mr. Green




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Bonne nuit a toi !

Alors il semblerait que je sois parvenu a un résultat exploitable.

j'ai défini les variable en local avec setlocal EnableDelayedExpansion for ( ....instruction.... ) endlocal
j'ai rajouté ma colonne a mon fichier texte comme ceci : data\bm_ene_common_all.bml m4 !m4! (avec les ! a la place des % pour entourer les variables locales)
Et lorsque je fais un test ( if "%%C"="non-trouvé" echo blabla puis pause) j'ai bien l'info affichée. Laughing Laughing

Je mets tout ça en forme et si je découvre une autre faille au code je vous dirais pour rectifier...
Edit : non tout semble fonctionner comme il faut Embarassed



Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Salut, oui j'avais pensé aux "!!" mais j'étais trop fatigué pour faire un batch Laughing
klausvg a écrit:

Edit : non tout semble fonctionner comme il faut Embarassed

Donc ça marche ou il te faut autre chose?




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
non ce sera tout merci, pas de café juste l'addition Very Happy

Ca marche c'est super Embarassed et merci d'avoir suivi ma question avec moi^^ parfois un échange ou une autre façon de voir les choses ça ouvre la réflection.

J'ai jamais vu d'exemple écrit comme ça pendant mes recherches donc j'espère que ça pourra servir a d'autres.



Dernière édition par klausvg le Ven 22 Aoû 2014 - 13:42; édité 1 fois
Répondre en citant
Message variable de boucle for utilisable dans un if ? 
Ok Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message variable de boucle for utilisable dans un if ? 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch