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 -
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 :
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
- Supercopier 2 - Télécharger - Gestion de fichiers
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer une video sur youtube - 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 )