Bonjour à tous,
Nouvelles difficultés avec l’utilisation d’une boucle FOR.
Le code suivant va analyser des répertoires sous [D:\Exemple] du type [Test_AAAA_MM_JJJJ_XXX ] où AAAA_MM_JJJJ sont des dates et XXX sont des nombres. Je voudrais connaître le nombre le plus grand [NumMax].
La première version fonctionne mais la boucle n’est pas bien utilisée car elle peut me fournir que la dernière information.
La deuxième version ne fonctionne pas mais elle devrait me permettre, une fois le problème trouvé, d’obtenir la bonne information. Après quelques tests, la variable [NomRep] ne semble pas prendre le nom du répertoire.
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 @ECHO OFF SETLOCAL EnableDelayedExpansion SET OldTarget="D:\Exemple\Test_" SET /a Longueur=17 SET /a Num=0 SET /a NumMax=0 SET /a Longueur=%Longueur%+10 FOR /d %%G IN ("%OldTarget%*") DO SET NomRep=%%~G SET /a Num=!NomRep:~%Longueur%,3! IF %Num% GTR %NumMax% SET /a NumMax=%Num% ECHO %NumMax% PAUSE
Elle fournit une info. avec [ECHO !NomRep!] mais rien dans le [SET /a Num=!NomRep:~%Longueur%,3!].
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 @ECHO OFF SETLOCAL EnableDelayedExpansion SET OldTarget="D:\Exemple\Test_" SET /a Longueur=17 SET /a Num=0 SET /a NumMax=0 SET /a Longueur=%Longueur%+10 FOR /d %%G IN ("%OldTarget%*") DO ( SET NomRep=%%~G SET /a Num=!NomRep:~%Longueur%,3! IF %Num% GTR %NumMax% SET /a NumMax=%Num% ) ECHO %NumMax% PAUSE
Auriez-vous une idée ?
Merci pour votre aide.
Partager