Recherche et déplacement de fichiers anciens
Bonjour,
Je souhaite réaliser un script qui recherche les fichiers qui n'ont pas été modifiés depuis le 01/01/2005, la liste est mise dans un fichier xls.
Les fichiers trouvés sont ensuite déplacés vers un autre répertoire tout en gardant l'arboressance.
Je m'explique :
Je map "c:\temp" en temps que lecteur "j:\"
Je scan le lecteur "j:\" et enregistre la liste des fichiers trouvés (qui ne sont plus utilisés) dans un fichiers excel.
Citation:
exemple de liste récupérée :
j:\test\fichier.doc
j:\test\nouveau_test\fichier1.doc
j:\test\nouveau_test\modèle\fichier2.doc
etc....
A chaque ligne enregistrée dans le fichier excel, le fichier trouvé doit être déplacé sur un autre disque (Le but étant de déplacer ces fichiers sur un autre serveur)
Dans mon exemple, je déplace les fichiers trouvés dans "d:\archives"
ATTENTION : Le fichier doit être déplacer mais en reconstruisant l'arboressance dans le répertoire de destination et une fois déplacé il ne doit plus se trouver dans "j:\".
Citation:
Ca donne à l'arrivée :
d:\archives\test\fichier.doc
d:\archives\test\nouveau_test\fichier1.doc
d:\archives\test\nouveau_test\modèle\fichier2.doc
etc......
Au finale, le fichier excel doit être enregistré dans le répertoire mes documents sous le nom : Listes_fichiers.xls
Voici donc le script que j'ai fais, mais il y a des problème dans le déplacement des fichiers. Je n'arrive pas non plus a reproduire l'arboressancedans le répertoire de destination. Enfin, je n'arrive pas a enregistrer mon document excel dans le répertoire de mon choix avec le nom de mon choix. (Le fichier excel est systématiquementenregistré dans mes documents sous le nom Classeur1.xls)
Code:
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
| 'Déclaration des variables
dim DateSearch, LecteurSearch, Searchshare, strdate
'Affectation de valeurs aux variables
DateSearch = "20050101"
LecteurSearch = "J:"
Searchshare = "\\MON_PC\c$\temp"
strDate = DateSearch & "000000.000000+000"
strComputer = "."
i_folder_dest = "d:\archivage\"
'Création des objets
Set WshNetwork = CreateObject("WScript.Network")
Set objExcel = CreateObject("Excel.Application")
'########## FONCTION LISTFILES ##########
Function Listfiles()
Set objFSO = CreateObject("Scripting.FileSystemObject")
objExcel.ActiveWorkbook.Worksheets.Add
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
objSheet.Name = "Old transfert Files"
x = 1
'mappage du lecteur J:\
WshNetwork.MapNetworkDrive LecteurSearch,Searchshare
'Recherche
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * From CIM_DataFile Where Lastaccessed < '" & strDate & "'" & _
" AND Drive = '" & LecteurSearch & "'")
For Each objFile in colFiles
objExcel.Cells(x, 1) = objfile.name
objFSO.MoveFile "objfile.name", i_folder_dest & "\",false
x = x + 1
Next
End Function
'########## PROGRAMME PRINCIPALE ##########
'Ouverture du fichier Excel
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
Listfiles 'Lancement de la fonction Listfiles
objWorkbook.Save() 'Enregistrement du classeur Excel en local dans Mes Documents\classeur1.xls
objExcel.Quit
'demappage du lecteur J:\
WshNetwork.RemoveNetworkDrive "J:"
'Désactivation des abjets
Set objExcel = nothing
Set WshNetwork = nothing |
Merci d'avance pour votre aide.