Bonsoir à tous,
Dans le cadre professionnel, je suis amenée à effectuer des actions répétitives que j'ai pensé pouvoir automatiser à l'aide d'un script batch. Cependant je débute totalement dans le batch et galère un peu avec mon script.
Le but de mon .bat : supprimer tous les fichiers présents dans une arborescence en ne gardant que la ou les dernière(s) version(s) de chacun des sous-dossiers.
J'ai une arborescence de ce type :
Dossier
Sous-dossier 1
fichier_v1
fichier_v2
Sous-dossier 2
fichier_v1
fichier_v2
Sous-dossier 3
fichier_v1
fichier_v2
autrefichier_v1
autrefichier_v2
Là où je coince : récupérer le ou les dernier(s) fichier(s) créé(s).
Mon script est le suivant :
Lorsque je l'exécute, je me rends compte qu'il ne sélectionne pas les derniers fichiers des sous-dossiers, mais les sous-dossiers eux-mêmes. De plus, le dossier temp initialement créé à la racine de PTEST est déplacé à la racine de 03_BAT.
Code : 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 @echo on set dossier=C:\Users\MonPC\Documents\PTEST cd %dossier% mkdir temp set DossTemp=%dossier%\temp cd %dossier%\03_BAT for %%d in (%cd%) do ( for /f "delims=" %%i in ('dir %cd%\*.* /TC') do set file=%%i move %file% C:\Users\Lily\Documents\PTEST\temp del /p /s *.* move %DossTemp%\%file% ) cd %dossier% rmdir temp pause
Je ne m'explique pas pourquoi.
Je sais que ce sujet à déjà été traité sur ce forum et d'autres, je me suis d'ailleurs aidée des réponses que j'ai pu trouver pour construire mon script. Cependant je constate que cela ne fonctionne pas pour moi.
Pourriez-vous m'éclaircir sur ce que j'ai fait de mal ?
Merci à vous et bonne soirée![]()
Partager