Récuperer les 2 derniers répertoires
Résolu
Champosoleil
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Champosoleil Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Champosoleil Messages postés 4 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 :
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.
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:
- Récuperer les 2 derniers répertoires
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Récupérer compte yahoo sans numéro de téléphone - Guide
- Récupérer mon compte facebook désactivé - Guide
- Faire 2 colonnes sur word - Guide
- Recuperer compte facebook piraté - Guide
1 réponse
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 :
Ce qui donne :
setlocal enabledelayedexpansion
FOR /F %%F in ('dir /b /ad /on C:\TOTO') do (
SET source=!cible!
SET cible=%%F
)