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

Vos Contributions VBScript Discussion :

MS VBS : Script effacement Fichiers sous dossiers plus vieux que X Jours avec Génération d'un fichier de Log


Sujet :

Vos Contributions VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut MS VBS : Script effacement Fichiers sous dossiers plus vieux que X Jours avec Génération d'un fichier de Log
    Bonjour,

    Nouveau sur le forum, tout débutant en MS VbScript, j'avais besoin d'un script pour effacer le contenu de dossiers de partage ou dossiers de sauvegardes plus vieux de X jours avec la génération d'un logFile.
    Il me sert à nettoyer des répertoires de sauvegardes et des dossier d'échange entre utilisateurs, cela m'évite un passage fastidieux sur les serveurs et préserve l'espace disque.
    Je me suis grassement inspiré de plusieurs script proposés ici (grand merci pour ce forum), pour faire le script dont je rêvais.

    Je vous le livre donc a toute fin utile :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
      ' VB Script Document
     
     
    'Effacement sauvegardes srv-tse
    'Repertoire ou sont stockes les fichiers
    DossierPartage = "D:\Non_save\Transfert_NS" 
     
    'Nombre de jours de conservation des Fichiers
    AgeMaximalFichiers = "15" 
     
    'Comptage des fichiers effaces
    NbFichiersEffaces = 0 
     
    'Nom du Fichier  Log  suivant  La Date  systeme
    LogFile_Date = "LogFile_" & Day(Now) & "_" & Month(Now) & "_" & Year(Now)
     
    'Initialisation des objets
    Set fso = CreateObject("Scripting.FileSystemObject" )
     
    if not fso.fileExists(DossierPartage & "\" & LogFile_Date & ".txt") Then
    Set OutPut = fso.CreateTextFile(DossierPartage & "\" & LogFile_Date & ".txt",8)
    OutPut.WriteLine "*************************************************************************************************"
    OutPut.WriteLine "Nous sommes Le " &  Day(Now) & "/" & Month(Now) & "/" & Year(Now)& " La liste des Fichiers Supprimés a cette heure " & Time & " est :"  
    OutPut.WriteLine "*************************************************************************************************"
    else
    Set OutPut = fso.OpenTextFile(DossierPartage & "\" & LogFile_Date & ".txt",8)
    OutPut.WriteLine "*************************************************************************************************"
    OutPut.WriteLine "Nous sommes Le " &  Day(Now) & "/" & Month(Now) & "/" & Year(Now)& " La liste des Fichiers Supprimés a cette heure " & Time & " est :" 
    OutPut.WriteLine "*************************************************************************************************"
    end if
     
    'On verifie que le repertoire de Partage existe
    If (myName = Winrep = fso.FolderExists(DossierPartage)) = False Then
        Erreur = MsgBox("Le dossier de partage est introuvable !" )
        Wscript.Quit
    End If
     
    'On recupere la date systeme
    DateSysteme = Date 
     
    'On apelle la fonction d'effacement 
    Clean(DossierPartage)
     
    OutPut.WriteLine Cstr(NbFichiersEffaces) + " Fichiers ont été Supprimés !"
    OutPut.WriteLine "*************************************************************************************************"
     
    '------------------------------------------------- 
    'Fonction d'effacement des fichiers
    Sub Clean(FolderPath) 
      Set Folder = fso.Getfolder(FolderPath) 
     
     
      'On appelle recursivement la fonction s'il y a des sous dossiers 
      Set SubFolder = Folder.SubFolders
      For Each CurrentFolder in SubFolder
        Clean CurrentFolder.Path
        If CurrentFolder.Files.Count = 0 Then
          fso.DeleteFolder(CurrentFolder)
        End If
      Next
     
     
      'On efface les fichiers dans le dossier courant 
      For Each File In Folder.Files
            If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then
     
     
                'On verifie qu'ils ne sont pas en lecture seule
                If File.Attributes And 1 Then File.Attributes = File.Attributes - 1
                OutPut.WriteLine File.Path 'Ecrire  le chemin du Fichier Supprimé
                File.Delete()
                NbFichiersEffaces = NbFichiersEffaces + 1
            End If
      Next
     
    End Sub

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut
    Attention je viens de me rendre compte que le script utilise la date du jour et la date de dernière modification du fichier, en cas de copie de fichier pas de changement de date sur le fichier faut que je trouve la parade.
    Si vous avez des idées..

Discussions similaires

  1. [Batch] suppression dossier plus vieux que date
    Par hetabeta dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 04/05/2015, 10h22
  2. lftp et suppression de dossiers plus vieux que x jours
    Par krapo13 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 06/09/2013, 14h04
  3. [Batch] supprimer les fichiers plus vieux que 10 jours
    Par big1 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/09/2012, 10h50
  4. Supprimer les fichiers Excel plus vieux que 7 jours
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/07/2009, 20h05
  5. Exécuter un script pl/sql sous sql*plus
    Par Dale_L dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 31/10/2008, 15h25

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