IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

suppression d'éléments anciens avec exclusion de sous répertoires


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut suppression d'éléments anciens avec exclusion de sous répertoires
    Bonjour,
    Je me permets de vous contacter car je souhaite mettre en place un plan de maintenance automatique sur mes serveurs, dans le but de supprimer des données plus anciennes que 30 jours sur un espace régulièrement saturé.

    J'ai une commande qui fonctionne actuellement, mais sans exclusions et pour une extension de fichier bien spécifique :

    Code Bat : Sélectionner tout - Visualiser dans une fenêtre à part
    FORFILES /P D:\FTP" /M "*.log" /S /D -30 /C "cmd /c del /Q @path"

    Ceci efface donc tous les fichiers logs de + de 30 jours qui se trouvent dans D:\FTP\ et ses sous-répertoires

    Mon problème :
    Comment exclure de cette suppression les logs se trouvant dans D:\FTP\test\ par exemple mais que tous les autres log des autres sous-répertoires de D:\FTP\ soient toujours effacés

    Je recherche aussi à effectuer la manipulation sur tous les fichiers et les dossiers existants (par la suite) et plus seulement sur les fichiers log

    Merci par avance pour votre aide

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Salut,

    Je vais te proposer un code mais teste le avant!
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off & cls
    set "exclude=.\test\"
     
    FORFILES /P "D:\FTP" /M "*.log" /S /D -30 /C "cmd /c (echo @relpath | findstr /i /c:"test" >nul) && (echo @relpath se trouve dans le dossier %exclude% on y touche pas) || (del /Q @path)"
     
    pause
    exit
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut réponse
    merci pour ce code, je vais le tester ce weekend

    entre temps j'ai trouvé un moyen d'y arriver partiellement avec du robocopy : je déplace tout ce qui est plus vieux que 30j vers un répertoire appelé dest en excluant un répertoire donné de mon arbo :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    robocopy.exe C:\Users\toto\Desktop\1 C:\Users\toto\Desktop\dest *.* /XD C:\Users\toto\Desktop\1\3 /S /E /V /R:1 /W:5 /MOVE /MINAGE:30

    Ceci rejoint bien mes besoins.
    Par contre je vais avoir beaucoup de commandes de ce type à passer car j'ai une arbo avec 3 répertoires à conserver pour chaque branche donc des tas d'exclusions, ou alors relancer plusieurs commandes sans exclusions mais traitant au niveau des sous-répertoires

    Du coup je cherche sur robocopy pour adapter ma commande ci-dessus mais en ne déplaçant que les fichiers présents dans TOUS les sous-répertoires et qui répondent aux critères d'ancienneté de + de 30 jours
    Jusqu'ici je bloque sur cette fonctionnalité qui n'est peut être pas possible.
    J'arrive à le faire mais au niveau du répertoire courant (appelé 1 dans mon exemple), mais pas de ses sous-répertoires : soit je déplace fichiers + sous-répertoires, soit il ne déplace que les fichiers du répertoire racine (1) et laisse tout le reste tel quel...

Discussions similaires

  1. Réponses: 11
    Dernier message: 09/10/2012, 13h09
  2. Parcours de liste avec suppression d'éléments
    Par biaggi dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2008, 10h00
  3. Sous-formulaire avec exclusion
    Par falco40² dans le forum IHM
    Réponses: 8
    Dernier message: 03/10/2007, 09h35
  4. pb de suppression d'éléments avec une map
    Par pada51 dans le forum SL & STL
    Réponses: 2
    Dernier message: 08/08/2007, 14h36
  5. Réponses: 5
    Dernier message: 11/06/2007, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo