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 :

Fonction rechercher et déplacer Erreur :(


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut Fonction rechercher et déplacer Erreur :(
    Voili Voili
    Je suis en train d'écrire un script vbs pour trouver des fichiers ayant une extension précise dans une arborescence donnée par un fichier liste.txt
    Je pensais mon Code fini mais j'ai une erreur et je ne sais pas comment la corriger, ni quel est mon erreur
    elle se trouverait dans la fonction Déplacement de fichier à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MyPath = ObjFSO.GetFolder(CheminFichier)
    le programme me dit que le chemin est introuvable...

    si quelqu'un peut m'aider à coriger mon erreur...

    Voici mon code
    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    ' VB Script Document
    'option explicit
     
    ' Appel code maître
    MainCode
     
     
    ' -----------------------------------------------------------------------------
    ' Code Maître
    ' -----------------------------------------------------------------------------'
    Sub MainCode() 
      Set ObjFSO = CreateObject("Scripting.FileSystemObject")
     
      Parm1 = Wscript.Arguments.item(0) 'liste.txt'
      Parm2 = Wscript.Arguments.item(1) 'y:\arbo'
     
      if right(Parm2,1) = "\" then Parm2 = mid(Parm2,1,len(Parm2)-1)
     
      If ObjFSO.FileExists(Parm1) Then
        wscript.echo "la liste de base de données existe"
      else 
        Set MonFic = ObjFSO.CreateTextFile("Y:\toto.txt") 
        MonFic.writeline "ça marche pas !!"""
        WScript.quit
      End If
     
      Set objFile = ObjFSO.OpenTextFile(Parm1)
     
      Do until objFile.AtEndOfStream
        CheminFichier = objFile.ReadLine
        result = Find(CheminFichier, "doc")
     
        if len(result) = 0 then wscript.quit
     
        Tbl = split(result,chr(10))
     
        for i = 0 to Ubound(Tbl) 
          DeplaceFichier Tbl(i), Parm2
        next
      Loop
    End Sub
     
     
     
    ' -----------------------------------------------------------------------------
    ' Fonction Deplacement de fichier
    ' -----------------------------------------------------------------------------
    Function DeplaceFichier (CheminFichier, Source)
      Dim MyPath
      NbrDocFile = 0
      Arbo = Source
      Set ObjFSO = CreateObject("Scripting.FileSystemObject")
     
      Set MyPath = ObjFSO.GetFolder(CheminFichier)
     
      For each File in MyPath.Files 
        if ObjFSO.GetExtensionName(File) = "doc" then NbrDocFile = NbrDocFile + 1
      next
     
      If (NbrDocFile > 0) Then 
        If right(CheminFichier,1) = "\" Then Chemin = CheminFichier & "*.doc"  else Chemin = CheminFichier & "\*.doc" 
     
          Tbl = split(Chemin,"\")
     
          For i = 1 to Ubound(Tbl) - 1 
            Arbo = Arbo & "\" & Tbl(i) 
            msgbox (arbo)
            If Not ObjFSO.FolderExists(Arbo) Then ObjFSO.CreateFolder Arbo
          next
        ObjFSO.CopyFile Chemin, Arbo
     
        If not err.number = 0 then msgbox err.number & ":" & err.description else msgbox "super méga trop bien !"
     
        If (Path.SubFolders.Count > 0) Then
            For Each Folder In Path.SubFolders
                Call DeplaceFichier(Folder)
            Next
        End If        
      End If
    End Function
     
    ' -----------------------------------------------------------------------------
    ' Fonction Find
    ' -----------------------------------------------------------------------------
    Function Find (strPath, strFileName)
      Dim MyDir, MyFile, MySubDir
      Dim strResult
     
      If strFileName = Empty Then Exit Function
      Set ObjFSO = CreateObject("Scripting.FileSystemObject")
     
      Set MyDir = ObjFSO.GetFolder(strPath)
     
      For Each MyFile In MyDir.Files
        if ObjFSO.GetExtensionName(MyFile) = strFileName then strResult = strResult & strPath & vbCrLf
       Next
     
      For Each MySubDir In MyDir.SubFolders
        strResult = strResult & Find(strPath & "\" & MySubDir.Name, strFileName)
     
      Next
     
      Find = strResult
    End Function

  2. #2
    Expert éminent


    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
    Par défaut
    Citation Envoyé par julien0709 Voir le message
    ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MyPath = ObjFSO.GetFolder(CheminFichier)
    le programme me dit que le chemin est introuvable...
    ...
    essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    msgbox CheminFichier
    Set MyPath = ObjFSO.GetFolder(CheminFichier)
    ...
    et dit nous quoi

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    lors de l'affichage de "cheminfichier" a l'aide de msgbox, il m'affiche bien la bonne arborescence mais seulement dans le premier dossier de la liste.txt
    lorsqu'il passe au deuxième dossier de la liste.txt, la fenêtre msgbox est vide et je ne vois pas pourquoi

  4. #4
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    montre nous quelques lignes de ton fichier texte.

    A++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    voici les lignes demandées

    y:\doc
    y:\stage
    y:\VBS

  6. #6
    Expert éminent


    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
    Par défaut
    Revoir les terminaisons de lignes dans ton fichier texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tbl = split(result,chr(10))
    essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tbl = split(result,vbCrlf)

Discussions similaires

  1. Erreur '2046' sur fonction rechercher
    Par nmanuel dans le forum IHM
    Réponses: 1
    Dernier message: 18/01/2013, 18h50
  2. Réponses: 3
    Dernier message: 15/11/2005, 18h50
  3. [fonction] recherche de methode inutilisée
    Par frouge dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h37
  4. fonction Recherche
    Par pingoui dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 31/08/2004, 17h44

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