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

VBScript Discussion :

Effacer fichier/dossier de + de xjrs


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 25
    Par défaut [VBS] Effacer fichier/dossier de + de xjrs
    Bonjour a tous , je vient encore pour demander de l'aide

    j'avais deja poster a ce sujet mais je suis en train de l'ameliorer pour traiter les S/dossiers et fichiers dans les s/dossiers.

    jai fait une recuscive mais sa n'a pas lair de marcher, je n'arrive pas a faire un e recurcive qui tienne la route


    voila mon code:
    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
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    ShowSubFiles FSO.GetFolder("C:\rrdtool")
    ShowSubfolders FSO.GetFolder("C:\rrdtool")
     
     
    Sub ShowSubFiles(Folder)
        For Each objFile in Folder.SubFolders
            Set f = fso.GetFile(objfile)
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then
                   objFSO.DeleteFile f, force = yes
                end if
            ShowSubFiles Subfolder
        Next
    End Sub
     
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            If DateDiff("D", subfolder.DateLastModified, now) > 10 Then
               objFSO.DeleteFolder subfolder, force = yes
            End If
            ShowSubFolders Subfolder
        Next
    End Sub
    pour info voila mon code de depart
    il efface tt les fichier et dossier dans un dossier defini mais sans chercher
    plus bas dans l'arboresence

    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
     
     
     
       Set FSO = CreateObject("Scripting.FileSystemObject")
       Set objFSO = CreateObject("Scripting.FileSystemObject")
       set folder = FSO.GetFolder ("D:\SV_PERSO")
       Set Dossiers = fso.GetFolder(folder)
       Set fic = Dossiers.Files
     
        For Each subfolders in folder.subfolders
            If DateDiff("D", subfolders.DateLastModified, now) > 10 Then
            objFSO.DeleteFolder subfolders, force = yes
            End If
        Next
     
     
        For Each objFile in fic
            Set f = fso.GetFile(objfile)
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then
                objFSO.DeleteFile f, force = yes
                end if
        next
    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 79
    Par défaut
    tu veux faire quoi exactement ??

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 25
    Par défaut
    je me suis mal exprimé j'avais (avec votre aide) cree un script Vbs pour dans un dossier donné effacer son contenu (fichier/dossier) si la dernier date de modif est superieur a 15Jr

    jai donc ce script, qui ne cherche pas dans l'arboresence (il s'arrete au sous dossier de mon dossier racine)

    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
     
     
       Set FSO = CreateObject("Scripting.FileSystemObject")
       Set objFSO = CreateObject("Scripting.FileSystemObject")
       set folder = FSO.GetFolder ("D:\SV_PERSO")
       Set Dossiers = fso.GetFolder(folder)
       Set fic = Dossiers.Files
     
        For Each subfolders in folder.subfolders
            If DateDiff("D", subfolders.DateLastModified, now) > 10 Then
            objFSO.DeleteFolder subfolders, force = yes
            End If
        Next
     
     
        For Each objFile in fic
            Set f = fso.GetFile(objfile)
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then
                objFSO.DeleteFile f, force = yes
                end if
        next
    je souhaite l'ameliorer pour qu'il puisse parcourir toute l'arboresence et verifier tous les fichier et dossier et si il sont plus vieux que 15jr les suprimer

    jai ce code mais je ne vois pas comment parcourir l'arboresence

    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
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    ShowSubFiles FSO.GetFolder("C:\rrdtool")
    ShowSubfolders FSO.GetFolder("C:\rrdtool")
     
     
    Sub ShowSubFiles(Folder)
        For Each objFile in Folder.SubFolders
            Set f = fso.GetFile(objfile)
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then
                   objFSO.DeleteFile f, force = yes
                end if
            ShowSubFiles Subfolder
        Next
    End Sub
     
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            If DateDiff("D", subfolder.DateLastModified, now) > 10 Then
               objFSO.DeleteFolder subfolder, force = yes
            End If
            ShowSubFolders Subfolder
        Next
    End Sub
    merci d'avance ^^

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 25
    Par défaut
    sinalement jai trouvé !
    je vous met le code (que jai commenté en passant) pour que sa serve si qqn en a besoin

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
     
    'declaration des variables
    Dim folder
    dim Subfolder
    dim path
    Dim FSO
     
    'instantation du file system object (FSO)
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'initialisation de la variable contenant le chemin du repertoire racine
    path = "c:\CACTI"
     
    'appel de la fonction recurcive avec comme argument le chemin du repertoire
    'racine
    recurcive path
     
    function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
                               'des dossiers
     
    set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
                                        'racine
    set Subfolder = folder.SubFolders   'definition de la varibale pour les S/dossiers
     
    for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
            Set fic = A.Files 'definition de la variables toucher les fichier des dossier
     
            fichier fic 'appel de la fontion fixhier
            recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
            dossier
    next
    end function 'fin de la fonction
     
     
    function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A
     
    For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
            Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
                msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
                'objFSO.DeleteFile f, force = yes
                end if 'fin du SI
        next
     
    end function 'fin de la fonction
     
     
    function dossier 'fonction pour supprimer les dossier vides (taille = 0 )
           set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
           For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine
                    If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
                    msgbox B & B.size 'effacer le dossier
                    'objFSO.DeleteFolder subfolders, force = yes
                    End If 'fin du SI
            Next
     
    end function 'fin de la fonction
    [
     
     
     
     
     
     
    'declaration des variables
    Dim folder
    dim Subfolder
    dim path
    Dim FSO
     
    'instantation du file system object (FSO)
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'initialisation de la variable contenant le chemin du repertoire racine
    path = "c:\CACTI"
     
    'appel de la fonction recurcive avec comme argument le chemin du repertoire
    'racine
    recurcive path
     
    function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
                               'des dossiers
     
    set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
                                        'racine
    set Subfolder = folder.SubFolders   'definition de la varibale pour les S/dossiers
     
    for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
            Set fic = A.Files 'definition de la variables toucher les fichier des dossier
     
            fichier fic 'appel de la fontion fixhier
            recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
            dossier
    next
    end function 'fin de la fonction
     
     
    function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A
     
    For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
            Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
                If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
                msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
                'objFSO.DeleteFile f, force = yes
                end if 'fin du SI
        next
     
    end function 'fin de la fonction
     
     
    function dossier 'fonction pour supprimer les dossier vides (taille = 0 )
           set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
           For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine
                    If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
                    msgbox B & B.size 'effacer le dossier
                    'objFSO.DeleteFolder subfolders, force = yes
                    End If 'fin du SI
            Next
     
    end function 'fin de la fonction

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2011, 15h33
  2. Réponses: 1
    Dernier message: 24/10/2009, 14h06
  3. lftp - Effacer fichiers et dossier recursivement
    Par Damouille dans le forum Linux
    Réponses: 1
    Dernier message: 04/09/2009, 12h28
  4. Effacer - Fichiers - Proteger - Dossier
    Par imparator_42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/03/2008, 17h41
  5. Effaces fichier et dossier qui date de plus de 15Jr
    Par darksnake dans le forum VBScript
    Réponses: 8
    Dernier message: 12/09/2006, 17h18

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