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 :

suppression dossier avec condition suivant nom des dossiers


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Points : 31
    Points
    31
    Par défaut suppression dossier avec condition suivant nom des dossiers
    Bonjour,

    je viens vous énoncer mon problème, j'ai un script qui me permet de supprimer des fichiers/dossiers datant de x jours. script qui fonctionne très bien.

    seulement voilà, j'aimerais y ajouter des conditions, notamment, interdire la suppression de certains dossier portant le nom xxx.
    mais je suis un peu perdue, je sais pas par où commencer et comment faire pour imposer ce critère (et si c'est possible bien sur)

    je vous montre le script à l'heure actuelle :

    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
     
     
    sPath = "C:\temp\" 
    sOlderThanDays = 15 
    sReportFiles = "Les fichiers suivants ont été nettoyés : " & vbCrLf 
    sReportFilesCount = 0 
    sReportFolders = "Les dossiers suivants ont été nettoyés : " & vbCrLf 
    sReportFoldersCount = 0 
     
    ' Compute old date 
    dOldDate = dateadd("d", 0 - sOlderThanDays, Now()) 
     
    ' Get base folder 
    Set oFSO = CreateObject("Scripting.FileSystemObject" ) 
     
    'On appelle la fonction de nettoyage
    CleanFolder(sPath)
     
    Sub CleanFolder(sCurrentPath) 
       ' select current folder 
       Set oFolder = oFSO.GetFolder(sCurrentPath)  
     
       ' Get subfolders 
       Set oSubFolders = oFolder.SubFolders 
     
       ' Do a recursive call if it contains subfolders 
       For Each oCurrentFolder in oSubFolders 
          CleanFolder oCurrentFolder.Path 
       Next  
     
       ' Get files in current folder 
       Set oFiles = oFolder.Files 
     
       ' Delete old Files 
        For Each oCurrentFile in oFiles 
          If oCurrentFile.DateCreated < dOldDate AND _ 
             oCurrentFile.DateLastModified < dOldDate Then 
             sReportFiles = sReportFiles & " - " & oCurrentFile.Path & "\" & oCurrentFile.Name & vbCrLf 
             oCurrentFile.Delete True 
             sReportFilesCount = sReportFilesCount + 1 
          End If 
       Next 
     
       Set oFiles = oFolder.Files 
       If oFiles.Count = 0 AND oFolder.Path & "\" <> sPath Then 
          sReportFolders = sReportFolders & " - " & oFolder.Path & "\" & vbCrLf 
          oFolder.Delete True 
          sReportFoldersCount = sReportFoldersCount + 1 
       End If 
     
    End Sub 
     
    MsgBox(Cstr(sReportFilesCount) + " fichiers ont ete effaces et " + Cstr(sReportFoldersCount) + " dossiers ont ete effaces")
    je tiens à préciser que je débutes dans la programmation vbs, le script n'est pas de moi (mais je le comprends, c'est préférable... )

    si vous avez une idée pour m'aiguiller je suis prenante, je sèche un peu là.

    et si je suis pas très clair, dite-le moi.

    Merci

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Comme ça, peut-être ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Set oFiles = oFolder.Files 
       If oFiles.Count = 0 AND InStr(oFolder.Name, "xxx") = 0 AND oFolder.Path & "\" <> sPath Then 
          sReportFolders = sReportFolders & " - " & oFolder.Path & "\" & vbCrLf 
          oFolder.Delete True 
          sReportFoldersCount = sReportFoldersCount + 1 
       End If

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Points : 31
    Points
    31
    Par défaut
    ah oui parfait, c'est exactement ça.

    merci beaucoup!!

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

Discussions similaires

  1. [Batch] suppression dossiers avec condition
    Par chewby79 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/06/2013, 11h56
  2. [Débutant] Recuperer seulement le nom des dossiers avec GetDirectories
    Par tardmonkey dans le forum VB.NET
    Réponses: 5
    Dernier message: 09/01/2013, 13h42
  3. Remplir TreeView avec les noms des dossiers
    Par Onimaru dans le forum Langage
    Réponses: 3
    Dernier message: 24/11/2012, 16h51
  4. Problème avec explorer à l'ouverture des dossiers
    Par anouchkaya dans le forum Windows XP
    Réponses: 17
    Dernier message: 01/07/2008, 15h30
  5. [Probleme de Compréhension] Nom des dossier
    Par brak__ dans le forum Windows Vista
    Réponses: 9
    Dernier message: 27/02/2007, 09h37

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