Aller au contenu

Problème en programmation BATCH


steevysnap

Messages recommandés

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

Attention prépare toi à pleurer... :mdr:

ça existe pas les additions en batch :mdr::mdr::mdr:

Solution : (prépare toi à te dire que tu vas essayer un autre langage :fete: )

@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 :cap::zarb:

Lien vers le commentaire
Partager sur d’autres sites

heureusement, rassure toi, M$ pense à toi et va ajouter un vrai langage de shell dans son prochain windows :youhou:

vivement la révolution :transpi:

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... 8)

:incline: merci billou :eeek2:

:pleure:

EDIT : tiens, allez, comme je ne voulais pas faire un message totalement inutile :fumer: voici quelques liens :eeek2:

[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 :eeek2:

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...
Attention prépare toi à pleurer... :yes:

ça existe pas les additions en batch :down::down::down:

Solution : (prépare toi à te dire que tu vas essayer un autre langage :transpi: )

@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 :cartonrouge::cartonrouge:

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...