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 :

script de suppression de fichiers dans une arborescence


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Points : 13
    Points
    13
    Par défaut script de suppression de fichiers dans une arborescence
    Bonjour tout le monde,
    je me tourne vers vous parce que je n'ai pas d'autres choix. j'ai cherché longtemps avant de poster cette discussion sur ce forum. je vous expose mon problème.

    pour commencer je suis totalement novice en vbs, mais alors vraiment novice de chez novice.
    j'ai un répertoire FTP dans lequel des utilisateurs y déposent des fichiers et des répertoires qui eux même contiennent des répertoires et des fichiers...
    je cherche un script qui pourrait parcourir toute l'arborescence et supprimer les fichiers qui seraient vieux de 30 jours.

    j'ai mis en place un script qui permet de supprimer les fichiers dans un répertoire sans parcourir l'arborescence (ce que je ne veux pas)

    voici mon script que j'ai pris par-ci par-là et modifié pour mes besoins.
    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
    Dim strFolder
    strFolder="C:\supprimer"
     
    Dim logfile
    logfile="logpurgeftp.log"
     
    Dim fileSystem
    Dim Repertoire
    Dim datedepurge
    datedepurge = date-0
     
    Dim fichier
     
     
    set filesystem = createobject("Scripting.FileSystemObject")
    on error resume next
    set Repertoire = fileSystem.GetFolder(strFolder)
    if err.number<>0 then
        wscript.echo "le repertoire ftp n'existe pas. Operation annulee."
        set Repertoire = nothing : set fileSystem = nothing
        wscript.quit(1)
    end if
    on error goto 0
     
     
    set oTS = fileSystem.OpenTextFile(strFolder & "\" & logfile, 8, True)
    for each fichier in Repertoire.files
        if datediff("D",fichier.DateCreated,datedepurge)=0 then
    	Set asupprimer = fileSystem.GetFile(fichier)
     
    	wscript.echo asupprimer 'cette ligne fonctionne
        'fileSystem.GetBaseName(fichier.path)  cette ligne fonctionne aussi
    	asupprimer.delete ' cela ne fonctionne pas error : permission denied 
    		oTS.writeline now & "," & fichier.path & "," & fichier.DateCreated & "," & fichier.DateLastModified
        end if
    next
    oTS.close
    set oTS = nothing : set Repertoire = nothing : set fileSystem = nothing
    Merci encore pour vos aides.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 94
    Points : 448
    Points
    448
    Par défaut
    Bonjour,

    Pour cela, tu as besoin d'une fonction récursive, c'est a dire qui s'appelle elle même en descendant dans l'arborescence.

    En résumé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function MaFonction( Chemin )
        Parcours Fichier
            Supprimer si > 30 jours
     
        Parcours Dossiers
            MaFonction Chemin & Dossier
    End Function

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par linuxman Voir le message
    (..)
    j'ai un répertoire FTP
    (...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFolder="C:\supprimer"
    (...)
    en quoi ton répertoire est un répertoire FTP ?

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Points : 13
    Points
    13
    Par défaut
    pour le moment je teste en local sur un répertoire en local(c:\supprimer) sur mon disque, je ne peux pas me permettre de tester sur la production. par la suite je compte le mettre sur le serveur ftp.
    Merci bodbod, je savais déjà qu'il me faudrait un truc de ce genre, le problème est que je ne sais pas développer pas en vbs. j'ai commencé à m'y mettre récemment, j'y touche un peu voilà c'est pourquoi je sollicite l'aide de tout le monde

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par linuxman Voir le message
    pour le moment je teste en local sur un répertoire en local(c:\supprimer) sur mon disque, je ne peux pas me permettre de tester sur la production. par la suite je compte le mettre sur le serveur ftp...
    et pour ton serveur ou le script seras exécuté il s'agira bien fichiers locaux ...
    et pas des fichiers accessibles par ftp ?

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Points : 13
    Points
    13
    Par défaut
    oui c'est cela, le script sera exécuté sur un serveur Windows et s'appliquera à un répertoire FTP qui se trouve en local sur le serveur. donc j'imagine que je dois me baser sur les dates de création de fichiers

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Donc pour ton serveur il s'agit d'un répertoire local et pas un répertoire auquel il accède par ftp...

    Inspire toi du code suivant :

    Citation Envoyé par bbil Voir le message
    utilise une fonction récursive du genre :

    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
     
     
    Dim oFSO,oFld
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    stRep = "d:\users"
    LectRep stRep 
     
    '
    ' Fonction récursive de parcours de répertoire
    '
    Sub LectRep (stR )
     For each oFld in  oFSO.GetFolder(stR).SubFolders
       Wscript.Echo "--------------- " & oFld.PAth & "-----------------"
       ListeFichier (oFld.PATH)   
       LectRep oFld.PATH
     Next
    end sub
    '
    ' Listing des fichiers du répertoire
    '
    Sub ListeFichier (stR)
     For each oFl in  oFSO.GetFolder(stR).Files
       Wscript.Echo oFl.Name	
     Next
    End sub
    modifie la fonction ListeFichier pour qu'elle effectue l'action souhaitée sur tes fichiers..

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Points : 13
    Points
    13
    Par défaut
    Merci bbil, je vais essayer

Discussions similaires

  1. [BATCH]script pour encoder des fichiers dans une arborescence
    Par ashgan44 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/05/2009, 15h04
  2. Compter le nombre de fichiers dans une arborescence
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 22/08/2007, 10h29
  3. Récupération de fichiers dans une arborescence
    Par bibilolo2 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 04/05/2007, 22h19
  4. chercher un fichier dans une arborescence
    Par diamonds dans le forum Entrée/Sortie
    Réponses: 15
    Dernier message: 16/03/2007, 14h27
  5. Suppression d'item dans une arborescence
    Par jonzuzu dans le forum MFC
    Réponses: 2
    Dernier message: 24/02/2004, 17h45

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