Recenser dans une partition les fichiers modifiés il y a plus de 5 ans

Le
lorafra
Bonjour,


Pour des raisons d'archivage d'un serveur de fichier, je souhaiterai
scripter ou avec un autre outil les fichiers modifiés il y a plus de 5
ans en donnant un aperçu de la quantité à archiver puis dans un secon=
d
temps de déplacer ces fichiers dans un dossier archive avec la même
construction de l'arborescence.

Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
magnum42
Le #21646911
Bonjour,

Je n'ai pas trop le temps de vous trouver tout ca mais je vous propose mon
petit script qui détruit les fichiers non utilisés depuis plus de 6 mois.
A adapter et compléter donc, mais c'est un début.
En espérant que ca aide ...


Option Explicit

Const CnbMonths = "6"
'Const cPath = "D:" 'Pour un lancement en local depuis le serveur
'Const cPath = "U:"
Const cPath = "\paris-srv12D$ftp"

Dim oMail,oFso,oFile,oRep
Dim iNbFiles,vDate,nDateDiff
Dim tExped,tDest,tObjet,sBody,tCopy,sName
Dim oArgs
Dim bAction_Mode

Set oArgs = WScript.Arguments
tExped = "Destroyer"
tDest = ""
tCopy = ""
tObjet = "Recherche de fichiers non modifiés depuis " & CnbMonths & " mois"
iNbFiles = 0
bAction_Mode = True
If(oArgs.Count=1) Then
If(UCase(oArgs(0))="/GO") Then
bAction_Mode = True
End If
End If

If(bAction_Mode) Then
wscript.echo "Action Mode"
Else
wscript.echo "Simulation Mode"
End If

'On Error Resume Next

Sub List_Files_in_Rep(tRep)
wscript.echo tRep
For each oFile in oFso.GetFolder(tRep).Files
'tExt = oFso.GetExtensionName(oFile.Name)
vDate = oFile.DateLastModified
nDateDiff = DateDiff("m",vDate,Date)
'wscript.echo oFile.DateLastModified & vbtab &
DateDiff("m",Today(),oFile.DateLastModified)
'wscript.echo oFile.Name & vbtab & vDate & vbtab & nDateDiff
If(nDateDiff >= 6) Then
sName = oFile.Path
wscript.echo vbtab & "ATTN : Destroy : " & oFile.Path & vbtab &
oFile.DateLastModified
On Error Resume Next
err.Clear()
If(bAction_Mode) Then oFso.DeleteFile oFile.Path,True
If(err) Then
sBody = sBody & "Could not destroy : " & sName & vbtab & err.Number &
vbtab & err.Description & vbnewline
Else
sBody = sBody & "Destroyed : " & sName & vbtab & "(" & nDateDiff & "
months old)" & vbnewline
End If
On Error GoTo 0
iNbFiles = iNbFiles + 1
Else
'wscript.echo vbtab & "Keep : " & oFile.Path & vbtab &
oFile.DateLastModified
End If
Next
For each oRep in oFso.GetFolder(tRep).SubFolders
If(Len(oRep.Path)>%0) Then
'sBody = sBody & "ATTN : Path too long : " & oRep.Path & vbnewline
wscript.echo vbtab & "ATTN : Path too long : " & oRep.Path
Else
'wscript.echo oRep.Path
List_Files_in_Rep(oRep.Path)
End If
Next
Set oFile = Nothing
Set oRep = Nothing
End Sub

Set oFso = CreateObject("Scripting.FileSystemObject")
List_Files_in_Rep(cPath)
wscript.echo "Finished scanning " & cPath

If(bAction_Mode) Then
sBody = "Bonjour," & vbnewline & "J'ai trouvé certains fichiers non modifiés
depuis " & CnbMonths & " mois dans le chemin suivant :" & vbnewline & _
cPath & vbnewline & vbnewline & "J'ai donc procédé à un nettoyage des "
& iNbFiles & " fichiers suivants :" & vbnewline & vbnewline & sBody
Else 'Simulation
sBody = "Bonjour," & vbnewline & "J'ai trouvé certains fichiers non modifiés
depuis " & CnbMonths & " mois dans le chemin suivant :" & vbnewline & _
cPath & vbnewline & vbnewline & "Les " & iNbFiles & " fichiers suivants
seront nettoyés ce soir :" & vbnewline & vbnewline & sBody
End If

sBody = sBody & vbnewline & vbnewline & vbnewline & "Merci !"

If not(bAction_Mode) Then sBody = sBody & vbnewline & vbnewline & "Etant en
mode simulation, les résultats cités ici sont ceux trouvés à l'instant t" & _
vbnewline & "Lors du lancement ce soir, les fichiers peuvent être
différents."

Set oFso = Nothing

wscript.echo "Send mail ??"
If(iNbFiles<>0) Then 'Si on a trouvé au moins un fichier, on envoie un mail !
wscript.echo vbtab & "Yes, let's send a mail"
Set oMail = CreateObject("CDO.Message"
oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") =
oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = IP_serveur_mai
oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMail.Configuration.Fields.Update
oMail.From = tExped
oMail.To = tDest
oMail.Cc = tCopy
'oMail.Bcc = tBcc
oMail.Subject = tObjet
oMail.Textbody = sBody
oMail.Send
Set oMail = Nothing
Else
wscript.echo "Nothing found. No need to send a mail"
End If



--
Franck
http://supermarches.faire-le-bon-choix.fr


"lorafra" wrote:

Bonjour,


Pour des raisons d'archivage d'un serveur de fichier, je souhaiterai
scripter ou avec un autre outil les fichiers modifiés il y a plus de 5
ans en donnant un aperçu de la quantité à archiver puis dans un second
temps de déplacer ces fichiers dans un dossier archive avec la même
construction de l'arborescence.

Merci pour votre aide
.

Lotre
Le #21649451
Bonjour,


Pour des raisons d'archivage d'un serveur de fichier, je souhaiterai
scripter ou avec un autre outil les fichiers modifiés il y a plus de
5
ans en donnant un aperçu de la quantité à archiver puis dans un
second
temps de déplacer ces fichiers dans un dossier archive avec la même
construction de l'arborescence.



Je ne serais pas surpris que deux lignes avec robocopy suffisent :
Une pour tester
Une pour agir

mais je suis sûr qu'il y a "ici"
des utilisateurs chevronnés de cet outil
qui sauront être plus précis

HB
Marc Lognoul [MVP]
Le #21652761
Bonjour,

@Lotre: je suis d'accord avec toi concernant Robocopy:
tester: utiliser le paramètre /L
condition sur l'age: /MAXAGE ou /MAXLAD

--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/



"Lotre" news:#

Bonjour,


Pour des raisons d'archivage d'un serveur de fichier, je souhaiterai
scripter ou avec un autre outil les fichiers modifiés il y a plus de 5
ans en donnant un aperçu de la quantité à archiver puis dans un second
temps de déplacer ces fichiers dans un dossier archive avec la même
construction de l'arborescence.



Je ne serais pas surpris que deux lignes avec robocopy suffisent :
Une pour tester
Une pour agir

mais je suis sûr qu'il y a "ici"
des utilisateurs chevronnés de cet outil
qui sauront être plus précis

HB
Publicité
Poster une réponse
Anonyme