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 :

recherche dossier et sous dossier


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 28
    Par défaut recherche dossier et sous dossier
    Bonjour,

    Cela fait 2 jours que je cherche à scripter en VBS une recherche de fichier =0 dans un dossier et sous- dossier.

    J'ai vu plusieurs méthodes sur le net mais je ne sais pas laquelle est la plus rapide (Utiliser le FSO,WMI ou encore même passer par un batch...) car c'est un script qui va démarrer à chaque ouverture de session donc il ne faut pas que ça prenne 5 minutes

    Si vous pouvez m'éclairer sur ce sujet

    Merci pour vos réponse.

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Inspirez-vous de ce script
    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
    On Error Resume Next
    Dim fso, f, Dossier, fc, ss
    Titre = "Suppression des Dossiers et des Fichiers Vides"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sho = CreateObject( "Wscript.Shell" )
    basefolder=sho.SpecialFolders("desktop") 'Mon répertoire de travail est le Bureau
    Set f = fso.GetFolder(basefolder)
    Set fc = f.SubFolders
    NomFichierLog="Dossiers_Fichiers_Vides.txt"
    temp = sho.ExpandEnvironmentStrings("%temp%")
    PathNomFichierLog = temp & "\" & NomFichierLog
    Set OutPut = fso.CreateTextFile(temp & "\" & NomFichierLog,1)
     
    NBDossierVides=0 'initialisation du compteur des Dossiers vides
    NBFichierVides=0 'initialisation du compteur des fichiers vides
     
    'Boucle pour la recherche des Dossiers vides
    For Each Dossier in fc
    If Dossier.size = 0 Then
    NBDossierVides= NBDossierVides + 1
    OutPut.WriteLine Dossier.Path
    Dossier.delete
    End if
    Next
    'Boucle pour la recherche des fichiers vides
    For Each Fichier in f.files
    if Fichier.size = 0 then
    NBFichierVides=NBFichierVides+1
    OutPut.WriteLine Fichier.Path
    Fichier.delete
    end if
    next
    OutPut.WriteLine NBDossierVides& " Dossiers Vides ont été supprimés"
    OutPut.WriteLine NBFichierVides& " Fichiers Vides ont été supprimés"
    Msgbox NBDossierVides & "    Dossiers Vides ont été supprimés !",64,Titre
    Msgbox NBFichierVides & "    Fichiers Vides ont été supprimés !",64,Titre
    Explorer(PathNomFichierLog)
     
    Function Explorer(File)
        Set ws=CreateObject("wscript.shell")
        ws.run "Notepad "& File & "\"
    end Function

  3. #3
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 28
    Par défaut
    Un grand merci je vais bossé dessus cette aprém
    Le code est super clair....parfait

  4. #4
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 28
    Par défaut
    Bonjour,

    Je post mon script ça peut toujours servir

    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
    'declaration des variables
    Dim folder
    dim Subfolder
    dim patch
    Dim FSO
     
    'instantation du file system object (FSO)
    Set FSO = CreateObject("Scripting.FileSystemObject")'initialisation de la variable contenant le chemin du repertoire racine
    Set wshnetwork = WScript.CreateObject("WScript.Network" ) 'initialisation de la variable pour la récupération du user et computer names
    userprofil = wshnetwork.username 'Récupération du nom de profil
    computername = wshnetwork.computername 'Récupération du nom de l'ordinateur
    path = "c:\test"
    '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 fichier
            recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
     
    next
    end function 
    function fichier(fic) 
    For Each objFile in fic 
            Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
                If objFile.Size = 0 AND UCase(FSO.GetExtensionName(objfile.Path)) = "TXT"  Then			'si la taille du fichier est égale à 0 et que le fichier à l'extention "TXT"
                FSO.DeleteFile(objfile)'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
     
                end if
        next
     
    end function

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

Discussions similaires

  1. [XL-2002] Recherche fichier dans dossier et sous dossier
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/02/2012, 12h09
  2. [Débutant] Recherche de dossiers et sous-dossiers
    Par Livesecours dans le forum VB.NET
    Réponses: 3
    Dernier message: 25/02/2012, 00h33
  3. [XL-2007] recherche fichiers dans sous-dossier
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/03/2010, 09h19
  4. recherche dans les sous dossiers
    Par y-master dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 23/10/2008, 16h53
  5. Réponses: 4
    Dernier message: 25/04/2006, 16h16

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