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 de nom de répertoires d'apres un RegExp


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Recherche de nom de répertoires d'apres un RegExp
    Bonjour toute la communauté,

    Je dois faire un script VBS qui me permette de Supprimer des Répertoires contenant la suite alphabétique suivante (sans tenir compte de la casse):
    A-SUP ou A_SUP ou ASUP. Cette suite alpha peut être située n'importe où dans le nom du répertoire. Totoasup ou a_sup-tata ou Isidore_a-supprimer etc...
    Dans mon script je n'arrive pas à récuperer, par le RegExp que je fais, le nom du répertoire pour l'effacer. Je vous joins mon script au Complet. Si quelqu'un pouvait m'aider à m'en sortir il serait extrèmement sympa.
    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
     
    ' VB Script Document
    option explicit
     
    Dim ConnexionReseau, LecteurReseau
    Dim f1, f2, f3, f4, f5, fy, fz, Y, Z, i, j, k
    Dim NomAdmin, PasswordAdmin
    Dim Serveur, ResultRecherche, CritDeRech
    dim TabloY(), TabloZ()
     
    Serveur= "ServeurUSERS"
    NomAdmin= "Administrateur"
    PasswordAdmin= "MotDePasse"
     
    Y=0
    Z=0
     
    CritDeRech="(a(\_|\-)sup|asup)"
     
    Set f1 = CreateObject("Scripting.FileSystemObject")
    Set ConnexionReseau = CreateObject("WScript.Network")
    Set LecteurReseau=ConnexionReseau.EnumNetworkDrives
    ConnexionReseau.MapNetworkDrive "Y:","\\" & Serveur & "\USERS",False,NomAdmin,PasswordAdmin
    ConnexionReseau.MapNetworkDrive "Z:","\\" & Serveur & "\USERS_PERSO",False,NomAdmin,PasswordAdmin
     
    Set f2 = f1.GetFolder("Y:")
    Set f3 = f1.GetFolder("Z:")
    Set fy = f2.SubFolders
    Set fz = f3.SubFolders
     
    Function RegExpTest(CritereRecherche, OuChercher)
    	Dim ExpressRegul, Match, Matches   ' Crée les variables.
    	Set ExpressRegul = New RegExp   ' Crée une expression régulière.
    	ExpressRegul.Pattern = CritereRecherche   ' Définit les critères.
    	ExpressRegul.IgnoreCase = True   ' Ignore la casse.
    	ExpressRegul.Global = True   ' Définit une application globale.
    	Set Matches = ExpressRegul.Execute(OuChercher)   ' Lance la recherche.
    	For Each Match in Matches   ' Itère la collection Matches.
    		ResultRecherche=ResultRecherche & Match.Value & vbCRLF
    	Next
    	RegExpTest = ResultRecherche
    End Function
     
    '=====================================
    'Teste la presence des lecteurs reseau
    '=====================================
    For i = 0 to LecteurReseau.Count - 1 Step 2
    	If LecteurReseau.Item(i)="Y:" then
    		ConnexionReseau.RemoveNetworkDrive "Y:" 'Si Y: existe on le supprime
    	end if
    	If LecteurReseau.Item(i)="Z:" then
    		ConnexionReseau.RemoveNetworkDrive "Z:" 'Si Z: existe on le supprime
    	end if
    Next
     
    '===============================================================
    'Affectation des noms de repertoire de Y: dans un tableau TabloY
    '===============================================================
    For Each f4 in fy
    	Redim Preserve TabloY(Y)
    	TabloY(Y)=f4.name
    	Y=Y+1
    Next
     
    '===============================================================
    'Affectation des noms de repertoire de Z: dans un tableau TabloZ
    '===============================================================
    For Each f5 in fz
    	Redim Preserve TabloZ(Z)
    	TabloZ(Z)=f5.name
    	Z=Z+1
    Next
     
    For j =Lbound(TabloY) to Ubound(TabloY)
    		RegExpTest CritDeRech,TabloY(j)
    Next
     
    For k =Lbound(TabloZ) to Ubound(TabloZ)
    		RegExpTest CritDeRech,TabloZ(k)
    Next
     
    ConnexionReseau.RemoveNetworkDrive "Y:"
    ConnexionReseau.RemoveNetworkDrive "Z:"

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Cela peut être compliqué à générer les expressions des regexp.

    J'aurais plutôt fait trois tests sur les noms des répertoires avec la fonction Instr.
    Regarde ici:
    http://vb.developpez.com/faqvbs/?page=II.6#vbsinstr

  3. #3
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Cela peut être compliqué à générer les expressions des regexp.

    J'aurais plutôt fait trois tests sur les noms des répertoires avec la fonction Instr.
    Regarde ici:
    http://vb.developpez.com/faqvbs/?page=II.6#vbsinstr
    Bonsoir tout le monde et ced600,
    merci pour la réponse.
    D'ailleurs C'est exactement ce que j'ai fait. Et là ça fonctionne.
    Je passe le fil en Résolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2009, 09h44
  2. Lire le nom du répertoire courant !
    Par Feustine dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2005, 14h33
  3. nom de répertoire contenant des accents
    Par isa38 dans le forum Windows
    Réponses: 6
    Dernier message: 21/07/2005, 10h27
  4. Réponses: 2
    Dernier message: 08/07/2005, 10h40
  5. Réponses: 6
    Dernier message: 25/08/2004, 09h50

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