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 récursive + déplacement fichiers .pst


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut Recherche récursive + déplacement fichiers .pst
    Bonjour,

    Je voudrais faire tourner un script VB qui:

    - parcours une arborescence I:\USERS\
    - si un .pst est trouvé dans un dossier I:\USERS\XXXXXXX\ ou un sous-dossier de celui-ci, le déplace dans I:\ARCHIVES\USERS\XXXXXXXX\Archives Outlook
    - n'écrase pas les .pst de même nom mais rajoute un chiffre à la fin, ex : archive01.pst



    Le problème est que je n'y connais rien en VB. J'ai trouvé des exemples à droite à gauche mais je n'arrive pas à les adapter à mon cas.

    Une âme charitable pourrait m'aider?

    Merci

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Bonsoir et bienvenu sur DVP

    Étant donnée ton honnêteté, et vu que c'est ta première visite sur ce site, je te propose ce
    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
     Option Explicit
     
     Dim fso, oFolder, WS, Ret,oSubFold,fich, Src,Dest
     
     Set fso = CreateObject("Scripting.FileSystemObject")
     Set WS = CreateObject("WScript.Shell")
     Src="C:\User" ' A modifier selon le besoin
     Dest="C:\Archives\User\XXXXXX" ' et cette ligne aussi
     Set oFolder = fso.GetFolder(src)
     CreateFolders Dest
     ScanForFile Src, Dest
    ' ===================================
    Sub ScanForFile(srcFolder,DestFolder)
        For Each Fich In oFolder.Files
    	   If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
    	      fso.MoveFile Fich.Path, DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
    	   End If
    	Next   
     
    	For Each oSubFold In oFolder.SubFolders
    	   For Each Fich In OsubFold.Files 
    	      If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
    	        fso.MoveFile Fich.Path, DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
    	      End If
    	   Next	  
    	Next
    End Sub
    ' =================================
    Function CreateFolders(Fldr)
      Dim OldFolder, tb, I, NextFolder,Root
      If fso.FolderExists(Fldr) Then 
          CreateFolders=Fldr
    	  Exit Function
      End If	  
      tb=Split(fldr,"\") 
      Root="C:\"
      On Error Resume Next
      For I=1 to Ubound(tb)
       If fso.FolderExists(Root & tb(I)) Then
          Set OldFolder=fso.GetFolder(Root & tb(I))
       ElseIf fso.FolderExists(Root & tb(I)) = False Then
          Set OldFolder=fso.GetFolder(Root)
          Set NextFolder = fso.CreateFolder(OldFolder.Path & "\" & tb(I))
       End If
       Root=NextFolder.Path & "\"
      Next
      CreateFolders=NextFolder.Path
    End Function
    ' =================================
    Function TransformDateTime()
     TransformDateTime="_" & Day(Now) &"_"& Month(Now) & "_" & Year(Now) & "_" & Hour(Now) & "_" _
       & Minute(Now) & "_" & Second(Now)
    End Function
    Mais tu devrais t'y faire un jour.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Whoua !! Je pensais pas avoir une réponse

    J'ai avancé un peu de mon côté aujourd'hui et il me manquait les log là.

    En fait, à chaque déplacement, je voudrai écrire dans un fichier la source et la destination mais lorsque je lance le script j'ai un 'permission refusée'. Pourtant niveau NTFS tout est OK.




    Merci beaucoup pour le script, je vais l'analyser
    Il est surement mieux que le mien XD

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Citation Envoyé par AbunaE Voir le message
    J'ai avancé un peu de mon côté aujourd'hui et il me manquait les log là.

    essaye ce 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
    start_folder = ".\"  ' à modifier le chemin du dossier source
    dest_folder = "c:\deplace"   'à modifier le chemin du dossier de destination
    htmfile = "Liste_pst.htm"  'Fichier Log en Html
    ext = Array("pst") 'extensions des fichiers .pst à rechercher
    count=0
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(start_folder)
    Set destination = fso.GetFolder(dest_folder)
    Set ws = CreateObject("WScript.Shell")
    Set outfile = fso.CreateTextFile(htmfile)
     
    strHTML="<html><body><style type='text/css'>"&_
    "a:link {color: #F19105;}"&_
    "a:visited {color: #F19105;}"&_
    "a:active {color: #F19105;}"&_
    "a:hover {color: #FF9900;background-color: rgb(255, 255, 255);}"&_
    "</style>"
     
    strHTML=strHTML &"<center><h2><B><font color=red>Le Nombre Total de Fichiers de type .pst qui ont été déplacé est de [COUNT]</font></B></h2></center>" & _
                  "<table border='1' style='border-collapse: collapse; font size:9pt' bordercolor='#CCCCCC' width='100%' id='Table1'>" & _
                  "<tr><td><center><strong>Fichier Source</strong></center></td><td><center><strong>Chemin du Dossier Destination</strong></center></td>" & _
                  "<td><center><strong>Taille<strong></center></td><td><center><strong>Type</strong></center></td>" & _
                  "<td><center><strong>Modifié le</strong></center></td><td><center><strong>Dernier Accès</strong></center></td></tr>" 
    ListDirectory folder,ext,destination
    strHTML = strHTML & "</table>"
    strHTML = Replace(strHTML, "[COUNT]", Count) 
    outfile.WriteLine strHTML &"</body></html>"
    outfile.Close
     
    Explorer htmfile
     
    Sub ListDirectory(folder,ext,destination)
     
        For Each objFile In folder.Files
         cheminFic = folder & "\" & objFile.name
          For i = lbound(ext) to ubound(ext)
            If UCase(ext(i)) = UCase(fso.GetExtensionName(objFile.Name)) Then
                count=count+1
                strFileName = objFile.Name
                strFilePath = objFile.ParentFolder
                strFileSize = FormatNumber((objFile.Size/1024),2) + " Kb"
                strFileType = objFile.Type
                strFileModified = objFile.DateLastModified
                strFileAccess = objFile.DateLastAccessed
     
                strHTML = strHTML & "<tr><td>"& cheminFic &"</td><td><a href='" & dest_folder & "'>" & _
                                    dest_folder & "</a></td><td>" & strFileSize & "</td>" & _
                                    "<td>" & strFileType & "</td><td>" & strFileModified & "</td>" & _
                                    "<td>" & strFileAccess & "</td></tr>"
     
    'MsgBox objFile	
     
    i=0
    if fso.FileExists(destination & "\" & strFileName)  Then
    i = i + 1
    	Deplacer objFile , destination & "\" & strFileName & i
    else
    	Deplacer objFile , destination & "\" & strFileName 	
    end if
     
            End If
        Next
           Next
        For Each fldr In folder.subfolders
            ListDirectory fldr, ext ,destination
        Next
    End Sub
     
    Function Explorer(File)
        Set ws=CreateObject("wscript.shell")
        ws.run "Explorer "& File & "\"
    end Function
     
    Function Deplacer(source,cible)
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.MoveFile source,cible
    end Function

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Nouvelle version :
    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
    Option Explicit
     
     Dim fso, oFolder, oSubFold,fich, Src,Dest, NewFich
     
     Set fso = CreateObject("Scripting.FileSystemObject")
     Src="C:\User"
     Dest="C:\Archives\User\XXXXXX"
     Set oFolder = fso.GetFolder(src)
     CreateFolders Dest
     ScanForFile Src, Dest
    ' ===================================
    Sub ScanForFile(srcFolder,DestFolder)
        For Each Fich In oFolder.Files
    	   If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
              NewFich=DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
    	      WriteLog Fich.Path, NewFich
    		  fso.MoveFile Fich.Path, NewFich
    	   End If
    	Next   
     
    	For Each oSubFold In oFolder.SubFolders
    	   For Each Fich In OsubFold.Files 
    	      If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
    		    NewFich=DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
    		    WriteLog Fich.Path, NewFich
    	        fso.MoveFile Fich.Path, NewFich
    	      End If
    	   Next	  
    	Next
    End Sub
    ' =================================
    Function CreateFolders(Fldr)
      Dim OldFolder, tb, I, NextFolder,Root
      If fso.FolderExists(Fldr) Then 
          CreateFolders=Fldr
    	  Exit Function
      End If	  
      tb=Split(fldr,"\") 
      Root="C:\"
      On Error Resume Next
      For I=1 to Ubound(tb)
       If fso.FolderExists(Root & tb(I)) Then
          Set OldFolder=fso.GetFolder(Root & tb(I))
       ElseIf fso.FolderExists(Root & tb(I)) = False Then
          Set OldFolder=fso.GetFolder(Root)
          Set NextFolder = fso.CreateFolder(OldFolder.Path & "\" & tb(I))
       End If
       Root=NextFolder.Path & "\"
      Next
      CreateFolders=NextFolder.Path
    End Function
    ' =================================
    Function TransformDateTime()
     TransformDateTime="_" & Day(Now) &"_"& Month(Now) & "_" & Year(Now) & "_" & Hour(Now) & "_" _
       & Minute(Now) & "_" & Second(Now)
    End Function
    ' ==============================
    Sub WriteLog(srcFile, DestFile)
      Dim f
      Set f=fso.OpenTextFile(Dest & "\Journal.log",8,True) 
      f.WriteLine " ====> " & srcFile & "    déplacé vers :   " & DestFile
      f.close
    End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Merci beaucoup !!!

    Je vais tester ça et je vous tiens au courant !!

    Merki

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Bon, alors de mon côté j'avais avancé aussi en prenant des infos à droite et à gauche et en m'appuyant sur les vôtres.

    J'ai 2 problèmes:
    - le script tourne en boucle depuis que j'ai fait des modifications pour bien tout organiser ... je ne vois pas où est le problème. Le 'Exit for' mal placé?
    - dans mon log, en source et en destination et j'ai la même chose à savoir, la destination. Je ne comprend pas non plus.


    Vous pouvez me corriger svp? De cette manière, ca sera plus formateur pour moi.

    Merci

    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
    dim objFSO, readfile, user , ExtToMove
     
    set objFSO = CreateObject("Scripting.FileSystemObject")
    set readfile = objFSO.OpenTextFile("users.txt", 1, false)
     
    user = readfile.ReadLine
    srcFolder = "I:\USERS\" & user
    tgtFolder = "I:\ARCHIVES\USERS\" & user & "\Archives Outlook\"
    ExtToMove = "pst"
     
    do while readfile.AtEndOfStream=false
     
    MoveFiles srcFolder,ExtToMove
     
    loop
     
    readfile.close
     
    wscript.echo "Termine"
     
    sub MoveFiles(BYVAL srcFolder,ExtToMove)
     
    	dim objFolder, objSubFolder, objFile
    	dim strExt
    	dim altTime
    	dim altDate
     
    	set objFolder = objFSO.GetFolder(srcFolder)
     
    	altTime = Replace(time, ":", "")
    	altDate = Replace(date, "/", "")
     
    	for each objFile in objFolder.Files
    		for each strExt in SPLIT(UCASE(ExtToMove),",")
    			if RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt then
     
    				wscript.echo "Moving:" & objFile.Path
    				name = objFSO.GetFileName(objFile)
     
                    If objFSO.FileExists(tgtFolder & name) then					
    				  objFSO.MoveFile objFile , tgtFolder & altDate & altTime & "-" & name
                      WriteLog objFile, tgtFolder & altDate & altTime & "-" & name
    				else
    				  objFile.Move(tgtFolder)
    				  WriteLog objFile, tgtFolder & name
    				end if				
    			exit for
     
    			end if
    		next
    	next
     
    	for each objSubFolder in objFolder.SubFolders
    		MoveFiles objSubFolder.Path,ExtToMove
    	next
     
    end sub
     
    sub WriteLog(srcFile, DestFile)
     
      dim f
     
      set f=objFSO.OpenTextFile("MoveFiles_log.txt",8,True) 
     
      f.WriteLine " ====> " & srcFile & "    déplacé vers :   " & DestFile
      f.close
     
    end sub

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    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
     
     
    dim objFSO, readfile, user , ExtToMove
     
    set objFSO = CreateObject("Scripting.FileSystemObject")
    set readfile = objFSO.OpenTextFile("users.txt", 1, false)
     
    user = readfile.ReadLine
    srcFolder = "I:\USERS\" & user
    tgtFolder = "I:\ARCHIVES\USERS\" & user & "\Archives Outlook\"
    ExtToMove = "pst"
     
    do while readfile.AtEndOfStream=false
     
    MoveFiles srcFolder,ExtToMove
     
    loop
     
    readfile.close
     
    wscript.echo "Termine"
     
    sub MoveFiles(BYVAL srcFolder,ExtToMove)
     
    	dim objFolder, objSubFolder, objFile
    	dim strExt
    	dim altTime
    	dim altDate
     
    	set objFolder = objFSO.GetFolder(srcFolder)
     
    	altTime = Replace(time, ":", "")
    	altDate = Replace(date, "/", "")
     
    	for each objFile in objFolder.Files
    		for each strExt in SPLIT(UCASE(ExtToMove),",")
    			if RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt then
     
    				wscript.echo "Moving:" & objFile.Path
    				name = objFSO.GetFileName(objFile)
     
                    If objFSO.FileExists(tgtFolder & name) then					
    				  objFSO.MoveFile objFile , tgtFolder & altDate & altTime & "-" & name
                      WriteLog objFile, tgtFolder & altDate & altTime & "-" & name
    				else
    				  objFile.Move(tgtFolder)
    				  WriteLog objFile, tgtFolder & name
    				end if				
    			exit for
     
    			end if
    		next
    	next
     
    	for each objSubFolder in objFolder.SubFolders
    		MoveFiles objSubFolder.Path,ExtToMove
    	next
     
    end sub
     
    sub WriteLog(srcFile, DestFile)
     
      dim f
     
      set f=objFSO.OpenTextFile("MoveFiles_log.txt",8,True) 
     
      f.WriteLine " ====> " & srcFile & "    déplacé vers :   " & DestFile
      f.close
     
    end sub

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    J'ai résolu mon premier problème en remettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    user = readfile.ReadLine
    srcFolder = "I:\USERS\" & user
    tgtFolder = "I:\ARCHIVES\USERS\" & user & "\Archives Outlook\"
    ExtToMove = "pst"

    dans la boucle loop



    Reste le problème du log où j'ai la source qui est égal à la destination:

    ====> I:\ARCHIVES\USERS\TEST\Archives Outlook\test4.pst déplacé vers : I:\ARCHIVES\USERS\TEST\Archives Outlook\test4.pst
    ====> I:\ARCHIVES\USERS\TEST\Archives Outlook\test5.pst déplacé vers : I:\ARCHIVES\USERS\TEST\Archives Outlook\test5.pst
    ====> I:\ARCHIVES\USERS\TEST\Archives Outlook\test6.pst déplacé vers : I:\ARCHIVES\USERS\TEST\Archives Outlook\test6.pst



    Quelqu'un peut me corriger le code?

    Merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Ça y est !!

    En fait, objFile prend la valeur de la destination après le déplacement ... je ne comprend pas pourquoi. Du coup j'initialise 2 nouvelles valeurs src et dst avant le déplacement et je les utilise pour le log. Ca marche.


    Est-ce que quelqu'un peut regarder mon code final et me dire ce qui peut être optimisé? Me dire ce qui ne va pas?

    Merci d'avance et merci à ceux qui ont répondu !!


    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
     
     
    dim objFSO, readfile, user , ExtToMove
     
    set objFSO = CreateObject("Scripting.FileSystemObject")
    set readfile = objFSO.OpenTextFile("users.txt", 1, false)
    set logfile = objFSO.OpenTextFile("MoveFiles_log.txt", 2, false)
     
    logfile.Write ""
    logfile.Close
     
    do while readfile.AtEndOfStream=false
     
    user = readfile.ReadLine
    srcFolder = "I:\USERS\" & user
    tgtFolder = "I:\ARCHIVES\USERS\" & user & "\Archives Outlook\"
    ExtToMove = "pst"
     
    MoveFiles srcFolder,ExtToMove
     
    loop
     
     
     
    readfile.close
     
    wscript.echo "Termine"
     
     
     
     
    sub MoveFiles(BYVAL srcFolder,ExtToMove)
     
    	dim objFolder, objSubFolder, objFile
    	dim strExt
    	dim altTime
    	dim altDate
     
    	set objFolder = objFSO.GetFolder(srcFolder)
     
    	altTime = Replace(time, ":", "")
    	altDate = Replace(date, "/", "")
     
    	for each objFile in objFolder.Files
    		for each strExt in SPLIT(UCASE(ExtToMove),",")
    			if RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt then
     
    				'wscript.echo "Moving:" & objFile.Path
    				name = objFSO.GetFileName(objFile)
     
                    If objFSO.FileExists(tgtFolder & name) then		
    				  src=objFile
    				  dst=tgtFolder & altDate & altTime & "-" & name
    				  objFSO.MoveFile src , tgtFolder & altDate & altTime & "-" & name
                      WriteLog src, dst
    				else
    				  src=objFile
    				  dst=tgtFolder & name
    				  objFile.Move(tgtFolder)
    				  WriteLog src, dst		
    				end if				
    			exit for
     
    			end if
    		next
    	next
     
    	for each objSubFolder in objFolder.SubFolders
    		MoveFiles objSubFolder.Path,ExtToMove
    	next
     
    end sub
     
    sub WriteLog(srcFile, DestFile)
     
      dim f
     
      set f=objFSO.OpenTextFile("MoveFiles_log.txt",8,True) 
     
      f.WriteLine " ====> " & srcFile & "    moved to :   " & DestFile
      f.close
     
    end sub

Discussions similaires

  1. Recherche récursive de fichiers via l'extension
    Par twisst dans le forum NetBeans
    Réponses: 1
    Dernier message: 15/04/2013, 15h02
  2. Recherche récursive de fichier
    Par maxshell dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 31/07/2009, 11h15
  3. Recherche récursive de fichiers
    Par atm0sfe4r dans le forum wxWidgets
    Réponses: 2
    Dernier message: 22/04/2009, 10h54
  4. Probleme de recherche récursive de fichiers
    Par JbTech dans le forum VB.NET
    Réponses: 5
    Dernier message: 30/07/2007, 14h02
  5. Réponses: 16
    Dernier message: 25/11/2004, 12h34

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