Comment additionner en CMD?

Résolu
foufou_qc -  
 foufou_qc -
Bonjour,

Sous XP, dans un fichier CMD que voici:

@echo off

:: initiation des compteurs
set /a Compt=0

::Bloucle sur les enrégistrements
FOR /F "tokens=1*" %%a in (u:\Marecherche.txt) DO (
	set /a Compt+=1
	echo Traitement de %%a, %Compt%
	
       	ping %%a	
) 

:end
echo terminer


Ma variable débute avec 0. Et dans la boucle la variable reste à 0, pourquoi et comment régler ce problème?

En ligne de commande set /a Compt+=1 ajoute 1 à Compt à chaque exécution de cette ligne. Et pourquoi en CMD ça ne fonctionne pas?

Merci de votre précieuse aide

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer
    @echo off 
    setlocal enableDelayedExpansion 
    
    :: initiation des compteurs 
    set /a Compt=0 
    
    ::Bloucle sur les enrégistrements 
    FOR /F "tokens=1*" %%a in (u:\Marecherche.txt) DO ( 
     set /a Compt+=1 
     echo Traitement de %%a, !Compt! 
      
            ping %%a  
    )  
    
    :end 
    echo terminer 
    
    
    2
    1. foufou_qc
       
      Merci ça fonctionne, mais pourquoi?
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      pour modifier des variables dans une boucle FOR, il faut utiliser
      setlocal enableDelayedExpansion
      et des ! à la place des %
      0
    3. foufou_qc
       
      Merci je comprend mieux maintenant merci encore :)
      0
  2. tuxboy Messages postés 1083 Statut Membre 190
     
    à tout hasard, tu as essayé :
    set /a Compt=Compt + 1
    0
    1. foufou_qc
       
      Oui j'ai essayé ça! c'est la même chose que set /a Compt += 1
      0