Supprime fichiers datant de plus de 15 jours !!!!

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 590 fois - Téléchargée 30 fois

Contenu du snippet

Se script en VBS vous permet de suuprimer les fichiers datant de plus de 15 jours vous pouvez bien evidemment Changer se parametre.Lorsque vous le lancer une boite de dialogue apparait pour vous demander de choisir les dossier a explorer pour supprimer les fichiers en question.Il permet d explorer le sous dossier egalement!

J espere qu il sera utile et dite moi ce que vous en pensez et si vous trouvez des ameliorations

Source / Exemple :


'*******************************************************************************
' Script permettant D 'effacer les fichiers Qui date de plus de 15 jours
' Avec interface Graphique
'
'*******************************************************************************

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")		
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
Set objFolderItem = objFolder.Self
strFolderName = objFolderItem.Path

Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
        & "Where AssocClass = Win32_Subdirectory " _
            & "ResultRole = PartComponent")

'Wscript.Echo strFolderName

arrFolderPath = Split(strFolderName, "\")
strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
    strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"

Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where Path = '" & strPath & "'")

For Each objFile in colFiles
    Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
     'Wscript.Echo objFile.Name & chr (10) &  objReadOnlyFile.DateLastModified
 if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then

     objFile.delete
end if
Next

For Each objFolder in colSubfolders
    GetSubFolders strFolderName
Next

Sub GetSubFolders(strFolderName)
    Set colSubfolders2 = objWMIService.ExecQuery _
        ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
            & "Where AssocClass = Win32_Subdirectory " _
                & "ResultRole = PartComponent")

    For Each objFolder2 in colSubfolders2
        strFolderName = objFolder2.Name
        'Wscript.Echo
        'Wscript.Echo objFolder2.Name
        arrFolderPath = Split(strFolderName, "\")
        strNewPath = ""
        For i = 1 to Ubound(arrFolderPath)
            strNewPath = strNewPath & "\\" & arrFolderPath(i)
        Next
        strPath = strNewPath & "\\"

        Set colFiles = objWMIService.ExecQuery _
            ("Select * from CIM_DataFile where Path = '" & strPath & "'")

        For Each objFile in colFiles
        Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
        if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
            'Wscript.Echo objFile.Name & chr (10) &  objReadOnlyFile.DateLastModified
            objFile.delete

          end if

        Next

        GetSubFolders strFolderName
    Next
End Sub

A voir également

Ajouter un commentaire

Commentaires

nonyme404
Messages postés
60
Date d'inscription
mercredi 23 octobre 2013
Statut
Membre
Dernière intervention
8 janvier 2014
-
Sauf que il a pas le button télécharger je suis gentil d'aprés les comentaires que les gens ont mis je te met une bonne note !
elnonoche
Messages postés
5
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
13 novembre 2014
-
Ouhla, je ne devais pas avoir tout tester car en mettant les lignes 12 à 16 en commentaire et en renseignant le chemin dans strfoldername, cela fonctionne parfaitement!!

C'était finalement très simple!!
Bonne soirée à tout le monde

Elnonoche
elnonoche
Messages postés
5
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
13 novembre 2014
-
Merci RENFIELD pour l'astuce mais cela me renvoie un chemin, tout ce qu'il y a de plus basique!
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
Mets un MsgBox du strFolderName obtenu via le BrowseForFolder
y'a peut etre une subtilité...
elnonoche
Messages postés
5
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
13 novembre 2014
-
Bonsoir,

Ce code m'est très utile, un grand merci à l'auteur!
Par contre, je galère un peu sur un point : je voudrais enlever la demande de sélection du dossier car je dois pointer toujours au même endroit. Toutes mes tentatives se sont soldées par un échec.
Que dois-je faire donc, mis à part le faire de renseigner le chemin du dossier dans la var "strFolderName" ???

Je vous remercie d'avance pour votre aide
Bonne soirée
El_nonoche

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.