Forum Clubic

Batch suppression de fichier a l'exeption de certains en fonction des dates

j’ ai un dossier qui contien des fichier de sauvegarde du style :
sav_2008-06-01.zip
sav_2008-06-02.zip



sav_2008-06-14.zip
sav_2008-06-15.zip
je souhaiterais créer un batch qui suprime tous les fichier a l’exeption de ceux de debut et fin de mois ?

merci d’avance pour vos ideés ou solutions :slight_smile:

Avec un .bat, ca risque d’être assez dur
En vbs ou en powershell, ca ne devrait pas poser de problème
Le plus simple restant quand même excel + vba, mais ce n’est plus tellement du batch.
Tout dépend de la fréquence à laquelle du comptes l’utiliser.

en fait je pense faire un script qui s’executerais tout les trois mois qui me purge mais qu’il me garde les fichier de debut et fin de mois
je suis pas au top en vbs !
tu peux me conseiller

en tout cas merci de ta reponse je vais creser dans cette voie

Si c’est tous les 3 mois, tu fais en vba, tu le lanceras à la main

  • tu récupères le contenu de ton dossier dans la première colonne de ta feuille excel (avec la fonction Dir de VBA)
  • tu tries
  • tu ajoutes une colonne pour ne conserver que la partie “date” de ton nom de fichier
  • dans une troisième colonne, tu marques les lignes pour lesquelles la partie année-mois est identique à la ligne du dessus et à la ligne du dessous
  • tu rebalaies ta première colonne, en effaçant les noms de fichiers dans les lignes qui comportent une marque

oui bonne logique !
pour recuperer le contenu du dossier dans un fichier je sais faire en batch mais pas vba :frowning:
en batch je me place dans le dossier et je fais : dir /b /on >liste.txt

pour la suite sous excel je devrais pouvoir me debrouillé avec l’enregistreur de macro pour faire les manip de tri de sepaation de la date te comparaison mais comment tu fais une fois que j’ai recuperer les lignes qui corespondrais a des fichier a supprimer pour vraiment les supprimer ??

il faut vraiment que je me plonge la dedans ! :slight_smile:

merci pour tes reponses on avance on avance !!

Tu peux continuer par cette méthode (Dir /b)
Ensuite, tu lances excel, puis tu ouvres ton fichier liste.txt ; il va se charger automatiquement dans la première colonne.
L’inconvénient, c’est si tes noms comportent des caractères accentués ou spéciaux, ils ne vont pas être restitués correctement

L’autre méthode, c’est de charger la feuille depuis le vba

set R = range("A1") ' la première cellule à remplir
R = dir("le_repertoire_a_lister") 'là tu récupères le premier nom de fichier 
while (x <> "") 
  set R=R.offset(1) ' passe à la cellule du dessous
  R=dir("") 'la tu récupères le nom de fichier suivant
wend

en fait j’ai revu un peu mes exigence et finalement je vais faire un script qui s’execute tous les 15 jours qui me copie le fichier du jours dans un autre dossier et me supprime les fichier vieux de + de 7 jours (via la commande “forfiles”)
et puis pour le dossier qui stoke un fichier par 15ene je ferais un purge a la mano
en tout cas merci beaucoup de ton aide
je vais m’acheter un bouquin pour aprendre a faire des scrip VBS ta un conseil sur un bouquin ?

Regarde d’abors les tutos proposés en ligne
Ca te guidera sur le type de bouquin à acheter en fonction de ce que tu maîtrises déjà ou non.