[batch] incrémentation

AnaGraM Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   -  
 @lex -
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   Statut Membre Dernière intervention   131
 
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