Inclure les sous dossiers...

Gafab -  
 Gafab -
Bonjour a tous,
je développe rarement et je me retrouve devant un problème.
j'ai glané a droite, a gauche, ce script (ci-après) pour déplacer des archives de +de 7 jours sur une autre machine.
Il fonctionne bien sauf que je doit également l'appliquer pour un dossier ou il y a plein de sous dossiers.
je ne trouve pas comment inclure les sous dossiers et surtout les déplacer dans les mêmes sous dossiers de l'autre coté.

======================================

Option Explicit
Dim oFSO, oFolder, sDirectorySource, sDirectoryDest
Dim oFileCollection, oFile, sDir
Dim iDaysOld

sDirectorySource = "D:\Archives"
sDirectoryDest = "\\SERVER\Sauvegarde\Archives\"

iDaysOld = 7

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sDirectorySource)
Set oFileCollection = oFolder.Files
For each oFile in oFileCollection

If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Move(sDirectoryDest)
End If

Next

Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing
=======================================

Désolé, je suis très pauvre en connaissances vbs... si quelqu'un peu m'aider ce serait bienvenue.
merci par avance.
Gafab.
Configuration: Windows XP
Firefox 3.5.5

2 réponses

  1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Bonjour,
    Voilà un script que j'ai fait y'a un moment, à parfaire et adapter (c'était mes débuts en vbs :) ); l'idée était de créer un backup d'un dossier ou de mettre à jour ce backup (de D: vers P:); ce script passe par un fonciton recursive qui parcourt les sous-dossiers, dans mes souvenirs ça marchait bien.....
    Dsl de n'avoir pas le temps de fauire les modifs mais tu devrais trouver l'aide nécessaire sur ce forum ;)
    racine= "D:\Perso"
    Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set MonRep=FSO.GetFolder(racine)
    copyrecur(MonRep)
    msgbox "Backup folder updated"
    
    function copyrecur(rep) 'parcourt les reps et sous reps et copie le fichier suivant conditions (datelastmodified différente) 
    	Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
    	Set colfic = rep.Files
    	For Each fic In colfic
    		pficdest = ("P:" & (right(fic.path,len(fic.path)-2) )) 'lettre de lecteur à adapter
    		repdest = (left(pficdest, len(pficdest) - len(fic.name)))
    		if not FSO.FolderExists(repdest) then
    				FSO.CreateFolder(repdest)
    		end if
    				
    		If FSO.FileExists(pficdest) then
    			Set ficdest= fso.GetFile(pficdest)
    			If not ficdest.datelastmodified = fic.datelastmodified then
    				FSO.CopyFile  fic , repdest , OverwriteExisting
    			end if
    		else 
    			FSO.CopyFile  fic , repdest , OverwriteExisting
    		end if
    
    	next
    	for each subFolder in rep.SubFolders
    		pfolddest =  ("P:" & (right(subFolder.path,len(subFolder.path)-2) ))
    		
    			if not FSO.FolderExists(pfolddest) then
    				FSO.CreateFolder(pfolddest)
    			end if
    		copyrecur(subFolder)
    	next
    end function
    0
    1. Gafab
       
      merci bien,
      je vais jeter un oeil....
      0
  2. Steph
     
    > c'était mes débuts en vbs

    Donc éviter de poster des scripts de débutant et
    recopier les scripts pros de MSDN
    0