Trier une liste de dossier pour n'en copier que certains.
Arnaud
-
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 14455 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, voici mon problème :
Je suis sur Win 7 et je cherche à créé un batch pour les actions suivantes :
J'ai un dossier dans lequel j'ai une liste de sous-dossiers. Ces sous dossiers sont simplement nommés par leur date du jour sous le format AAAAMMJJ. (ex 20181105 ou 20181106)
Je cherche à ne copier que les 7 derniers jours.
Or je ne peux pas me baser sur l'ancienneté des dossiers.
J'ai pensé à plusieurs solutions mais je ne sais en appliquer aucune :
- Copier l'ensemble des sous-dossiers et faire un del avec exception
- Faire une liste des sous-dossiers, la trier en décroissant et ne prendre que les 7 plus grand.
- Faire un batch pour définir une date -7 / date -6 / date -5 ... etc
Tous les batch windows que j'ai pu trouver sur le net me semble très complexes et je n'arrive pas à les appliquer.
Quelqu'un aurait une solution simple ou qui fonctionne svp ?
en vous remerciant.
Je suis sur Win 7 et je cherche à créé un batch pour les actions suivantes :
J'ai un dossier dans lequel j'ai une liste de sous-dossiers. Ces sous dossiers sont simplement nommés par leur date du jour sous le format AAAAMMJJ. (ex 20181105 ou 20181106)
Je cherche à ne copier que les 7 derniers jours.
Or je ne peux pas me baser sur l'ancienneté des dossiers.
J'ai pensé à plusieurs solutions mais je ne sais en appliquer aucune :
- Copier l'ensemble des sous-dossiers et faire un del avec exception
- Faire une liste des sous-dossiers, la trier en décroissant et ne prendre que les 7 plus grand.
- Faire un batch pour définir une date -7 / date -6 / date -5 ... etc
Tous les batch windows que j'ai pu trouver sur le net me semble très complexes et je n'arrive pas à les appliquer.
Quelqu'un aurait une solution simple ou qui fonctionne svp ?
en vous remerciant.
A voir également:
- Trier une liste de dossier pour n'en copier que certains.
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Dossier appdata - Guide
- Comment copier une vidéo youtube - Guide
- Liste déroulante en cascade - Guide
1 réponse
Bonjour,
C'est très simple, il suffit de lister les sous-dossiers par ordre alphabétique inversé puis de copier les 7 premiers résultats :
Je n'ai pas testé ce code mais à peu de choses près ça doit fonctionner.
C'est très simple, il suffit de lister les sous-dossiers par ordre alphabétique inversé puis de copier les 7 premiers résultats :
setlocal enableextensions enabledelayedexpansion
set source=ton dossier source
set destination=ton dossier de destination
set compteur=0
for /f "delims=" %%A in ('dir /ad /b "%source%" ^| sort /r') do (
set /a compteur+=1
if !compteur! LEQ 7 (robocopy "%source%\%%~A" "%destination%\%%~A" /MIR)
)
Je n'ai pas testé ce code mais à peu de choses près ça doit fonctionner.