[batch] incrémentation

Fermé
AnaGraM Messages postés 69 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 18 mai 2007 - 6 sept. 2004 à 16:06
 @lex - 11 févr. 2014 à 17:51
Bonjour,

Je n'arrive pas à incrémenter une variable dans un script bash.
Ceci fonctionne
set k=0
set /A k=%k%+1
echo %k%

mais pas ceci
set k=0
For /F %%i in ('dir /A:A /O:S /B') do (
set /A k=%k%+1
)
echo %k%

k vaut toujours 0 !!!
Pourriez-vous me dire comment incrémenter une variable dans une boucle ? Je désespère !
Merci

6 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
29 juil. 2009 à 00:56
Bonsoir,

Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite quand on boucle ! Le temps passe si vite ..........................

T'en es où Florian depuis le temps ? COSTiC t'a pas réveillé, au moins ?
Autrement c'est un problème d' expansion retardée de variables il suffit de mettre en début de fichier : SETLOCAL ENABLEdelayedExpansionet de remplacer les "%" par des "!" qui encadrent la variable k :
set k=0 
For /F %%i in ('dir /A:A /O:S /B') do ( 
set /A k=!k!+1 
) 
echo !k! 


Pour s'en convaincre faire "help set" sur l'invite de commandes.
6