steevysnap Posté(e) le 2 juillet 2006 Partager Posté(e) le 2 juillet 2006 Bonsoir, Celà fait un moment que je but sur un problème tout con, mais sans trouver de solutions. Voici le code me posant problème: SET compteur=1 FOR /F %%i IN (liste.txt) DO ( set compteur /a =%compteur%+1 echo %compteur% ) J'execute une boucle qui lit dans un fichier texte ligne après ligne. Le problème est qu'en executant ça, le echo m'affiche à chaque tour de boucle la valeur 1. En gros mon compteur ne s'incrémente pas. Je sais que la boucle FOR avec le /L permet d'avoir un compteur, mais là ma boucle FOR utilise déjà le /F pour lire dans le fichier.. Si quelqu'un a une solution je suis preneur. Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 3 juillet 2006 Partager Posté(e) le 3 juillet 2006 Attention prépare toi à pleurer... ça existe pas les additions en batch Solution : (prépare toi à te dire que tu vas essayer un autre langage ) @echo off set compteur=0 set return=:boucle :boucle echo %compteur% if %compteur% LSS 10 goto incremente goto :eof :incremente if %compteur%==9 set compteur=10 if %compteur%==8 set compteur=9 if %compteur%==7 set compteur=8 if %compteur%==6 set compteur=7 if %compteur%==5 set compteur=6 if %compteur%==4 set compteur=5 if %compteur%==3 set compteur=4 if %compteur%==2 set compteur=3 if %compteur%==1 set compteur=2 if %compteur%==0 set compteur=1 goto %return% Attention l'ordre est important vu qu'on peut pas non plus grouper les instructions dans un if... non mais franchement ça sert à quoi ce langage de malade Lien vers le commentaire Partager sur d’autres sites More sharing options...
steevysnap Posté(e) le 5 juillet 2006 Auteur Partager Posté(e) le 5 juillet 2006 Merci pour la solution, ca fonctionne.... Fallait y penser! T'as raison, le batch c'est vraiment un language horrible.. Bonne soirée, a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 5 juillet 2006 Partager Posté(e) le 5 juillet 2006 heureusement, rassure toi, M$ pense à toi et va ajouter un vrai langage de shell dans son prochain windows vivement la révolution heureusement qu'ils sont là pour être toujours à la pointe de la technologie et innover constament, sinon, on en resterait au moyen âge... vous allez voir que dès que ce sera sorti, les autres système vont s'empresser de tout pomper... merci billou EDIT : tiens, allez, comme je ne voulais pas faire un message totalement inutile voici quelques liens [Tuto][initié] Les Scripts Bash [Tuto][initié] 10 exercices de bash, avec les corrections histoire de voir ce qui se fait par défaut sur certains système depuis ... 20ans Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 11 juillet 2006 Partager Posté(e) le 11 juillet 2006 Interfacé avec cygwin, ça peut le faire (faute de mieux) Lien vers le commentaire Partager sur d’autres sites More sharing options...
iyouri Posté(e) le 20 mai 2009 Partager Posté(e) le 20 mai 2009 Attention prépare toi à pleurer... ça existe pas les additions en batch Solution : (prépare toi à te dire que tu vas essayer un autre langage ) @echo off set compteur=0 set return=:boucle :boucle echo %compteur% if %compteur% LSS 10 goto incremente goto :eof :incremente if %compteur%==9 set compteur=10 if %compteur%==8 set compteur=9 if %compteur%==7 set compteur=8 if %compteur%==6 set compteur=7 if %compteur%==5 set compteur=6 if %compteur%==4 set compteur=5 if %compteur%==3 set compteur=4 if %compteur%==2 set compteur=3 if %compteur%==1 set compteur=2 if %compteur%==0 set compteur=1 goto %return% Attention l'ordre est important vu qu'on peut pas non plus grouper les instructions dans un if... non mais franchement ça sert à quoi ce langage de malade euh dsl man y a plus simple @echo off {@echo off c'est pour ne pas affiches les commande tépé} if not defined i set i=0 {la c'est pour l'initialisation de i } :A {:A c'est une label } set /a i=i+1 { set /a pour faire l'incrémentation de i } echo %i% {%i% c'est pour afficher le contenu du resultat de set /a i=i+i les 2 pourcentage son obligatoir } if %i% equ 25 goto fin {pour mettre fin au compteur } goto A { cette commande te permet de revenir ver la label pour refaire les étape aprés :A :fin pause j'éspére que ton compteur va marcher aprés ca Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tiduster Posté(e) le 20 mai 2009 Partager Posté(e) le 20 mai 2009 C'est sympa, mais le message a 3 ans . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.