Récuperer les 2 derniers répertoires

Résolu
Champosoleil Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Champosoleil Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

dans un fichier de commandes Windows (.bat) je cherche à récupérer les 2 derniers répertoires d'une arborescence dans des variables, pour ensuite en comparer le contenu, et j'ai un soucis avec les variables, impossible de conserver la valeur n-1, exemple ci-dessous :

FOR /F %%F in ('dir /b /ad /on C:\TOTO') do (
 SET source=%cible%
 SET cible=%%F
)

Admettons que dans C:\TOTO j'ai les répertoires :
Rep1
Rep2
Rep3

à la fin j'ai bien cible =Rep3 mais dans source rien du tout

Si je trace les variables dans la boucle je m'aperçois que cible perd son contenu à chaque nouvelle itération du FOR.

Une idée ?

Merci d'avance.
A voir également:

1 réponse

Champosoleil Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Finalement j'ai trouvé la solution, curieusement ce qui se passe dans un FOR est éphémère à chaque itération. il faut se mettre en "delayed expansion" et récupérer la variable avec des points d'exclamation (va comprendre ce qui est passé dans la tête des développeurs microsoft ce jour là...)

Ce qui donne :

setlocal enabledelayedexpansion
FOR /F %%F in ('dir /b /ad /on C:\TOTO') do (
	SET source=!cible!
	SET cible=%%F
)
0