Inclure les sous dossiers...
Gafab
-
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.
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
-
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 -
> c'était mes débuts en vbs
Donc éviter de poster des scripts de débutant et
recopier les scripts pros de MSDN