Suppression sur une arborescence des fichiers datant de + 1 mois

Le
forumicrosoft
Bonjour,

Je débute en vbs, je cherche un moyen de coder simplement la
suppression automatique des fichiers datant de +1 mois sur toute une
arborescence.
Je cherche des exemples de code qui traite ce problème, la récursivit=
é
et la date de modification du fichier.

Merci.
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
Gilles LAURENT [MVP]
Le #17557791
"" wrote:

Bonjour,



Bonjour,

Je débute en vbs, je cherche un moyen de coder simplement la
suppression automatique des fichiers datant de +1 mois sur toute une
arborescence.
Je cherche des exemples de code qui traite ce problème, la récursivité
et la date de modification du fichier.



Ci-dessous le script VBScript RemoveFiles.vbs permettant de supprimer de
manière récursive tous les fichiers non modifiés depuis N jours sur toute
l'arborescence spécifiée comme argument.

Usage :
RemoveFiles.vbs <path> <nbDays> [/whatif:<True|False>]

Exemples :
1- Pour simuler la suppression de tous les fichiers de l'arborescence
D:Test non modifiés depuis 30 jours :
> cscript //nologo RemoveFiles.vbs D:Test 30 /whatif:True

2- Pour supprimer tous les fichiers de l'arborescence D:Test non modifiés
depuis 60 jours :
> cscript //nologo RemoveFiles.vbs D:Test 60

--- Coupez-ici : RemoveFiles.vbs ---
Set oFs=CreateObject ("Scripting.FileSystemObject")
Set oFolder=oFs.GetFolder (WScript.Arguments(0))
RemoveFiles _
oFolder, _
CInt(WScript.Arguments(1)), _
CBool (WScript.Arguments.Named ("whatif"))

Sub RemoveFiles (oFolder, nDays, bWhatIf)
Set colFiles=oFolder.Files
For Each oFile In colFiles
nDeltaÚteDiff ("D", oFile.DateLastModified, Date())
If nDelta => nDays Then
WScript.Echo Right("000" & nDelta, 3), _
oFile.DateLastModified, _
oFile.Path & " deleted ..." & _
" (" & CStr(Not bWhatIf) & ")"
If Not bWhatIf Then oFile.Delete (True)
End If
Next
For Each oSubFolder In oFolder.SubFolders
RemoveFiles oSubFolder, nDays, bWhatIf
Next
End Sub
--- Coupez-ici : RemoveFiles.vbs ---

La sortie est de la forme :
- Nombre de jours de la dernière modification du fichier
- Date de dernière modification
- Chemin complet du fichier supprimé
- Suppression effective (Vrai ou Faux)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
---DGI972---
Le #17576881
Gilles LAURENT [MVP] avait prétendu :
"" wrote:

Bonjour,



Bonjour,

Je débute en vbs, je cherche un moyen de coder simplement la
suppression automatique des fichiers datant de +1 mois sur toute une
arborescence.
Je cherche des exemples de code qui traite ce problème, la récursivité
et la date de modification du fichier.



Ci-dessous le script VBScript RemoveFiles.vbs permettant de supprimer de
manière récursive tous les fichiers non modifiés depuis N jours sur toute
l'arborescence spécifiée comme argument.

Usage :
RemoveFiles.vbs <path> <nbDays> [/whatif:<True|False>]

Exemples :
1- Pour simuler la suppression de tous les fichiers de l'arborescence
D:Test non modifiés depuis 30 jours :
> cscript //nologo RemoveFiles.vbs D:Test 30 /whatif:True

2- Pour supprimer tous les fichiers de l'arborescence D:Test non modifiés
depuis 60 jours :
> cscript //nologo RemoveFiles.vbs D:Test 60

--- Coupez-ici : RemoveFiles.vbs ---
Set oFs=CreateObject ("Scripting.FileSystemObject")
Set oFolder=oFs.GetFolder (WScript.Arguments(0))
RemoveFiles _
oFolder, _
CInt(WScript.Arguments(1)), _
CBool (WScript.Arguments.Named ("whatif"))

Sub RemoveFiles (oFolder, nDays, bWhatIf)
Set colFiles=oFolder.Files
For Each oFile In colFiles
nDeltaÚteDiff ("D", oFile.DateLastModified, Date())
If nDelta => nDays Then
WScript.Echo Right("000" & nDelta, 3), _
oFile.DateLastModified, _
oFile.Path & " deleted ..." & _
" (" & CStr(Not bWhatIf) & ")"
If Not bWhatIf Then oFile.Delete (True)
End If
Next
For Each oSubFolder In oFolder.SubFolders
RemoveFiles oSubFolder, nDays, bWhatIf
Next
End Sub
--- Coupez-ici : RemoveFiles.vbs ---

La sortie est de la forme :
- Nombre de jours de la dernière modification du fichier
- Date de dernière modification
- Chemin complet du fichier supprimé
- Suppression effective (Vrai ou Faux)



bonjour,

Super l'argument whatif (cela me fait penser a un pub ...)
Et si on veut cibler une extension en particulier par ex *.tif ?
Michel__D
Le #17581721
Bonjour,

---DGI972--- a écrit :
Gilles LAURENT [MVP] avait prétendu :
"" wrote:

Bonjour,



Bonjour,

Je débute en vbs, je cherche un moyen de coder simplement la
suppression automatique des fichiers datant de +1 mois sur toute une
arborescence.
Je cherche des exemples de code qui traite ce problème, la récursivité
et la date de modification du fichier.



Ci-dessous le script VBScript RemoveFiles.vbs permettant de supprimer
de manière récursive tous les fichiers non modifiés depuis N jours sur
toute l'arborescence spécifiée comme argument.

Usage :
RemoveFiles.vbs <path> <nbDays> [/whatif:<True|False>]

Exemples :
1- Pour simuler la suppression de tous les fichiers de l'arborescence
D:Test non modifiés depuis 30 jours :
> cscript //nologo RemoveFiles.vbs D:Test 30 /whatif:True

2- Pour supprimer tous les fichiers de l'arborescence D:Test non
modifiés depuis 60 jours :
> cscript //nologo RemoveFiles.vbs D:Test 60

--- Coupez-ici : RemoveFiles.vbs ---
Set oFs=CreateObject ("Scripting.FileSystemObject")
Set oFolder=oFs.GetFolder (WScript.Arguments(0))
RemoveFiles _
oFolder, _
CInt(WScript.Arguments(1)), _
CBool (WScript.Arguments.Named ("whatif"))

Sub RemoveFiles (oFolder, nDays, bWhatIf)
Set colFiles=oFolder.Files
For Each oFile In colFiles
nDeltaÚteDiff ("D", oFile.DateLastModified, Date())
If nDelta => nDays Then
WScript.Echo Right("000" & nDelta, 3), _
oFile.DateLastModified, _
oFile.Path & " deleted ..." & _
" (" & CStr(Not bWhatIf) & ")"
If Not bWhatIf Then oFile.Delete (True)
End If
Next
For Each oSubFolder In oFolder.SubFolders
RemoveFiles oSubFolder, nDays, bWhatIf
Next
End Sub
--- Coupez-ici : RemoveFiles.vbs ---

La sortie est de la forme :
- Nombre de jours de la dernière modification du fichier
- Date de dernière modification
- Chemin complet du fichier supprimé
- Suppression effective (Vrai ou Faux)



bonjour,

Super l'argument whatif (cela me fait penser a un pub ...)
Et si on veut cibler une extension en particulier par ex *.tif ?



Par exemple comme ceci :

Sub RemoveFiles (oFolder, nDays, bWhatIf)
Set colFiles=oFolder.Files
For Each oFile In colFiles

If StrComp(Right(oFile.Name,4)),".tif",1) = 0 Then

nDeltaÚteDiff ("D", oFile.DateLastModified, Date())
If nDelta => nDays Then
WScript.Echo Right("000" & nDelta, 3), _
oFile.DateLastModified, _
oFile.Path & " deleted ..." & _
" (" & CStr(Not bWhatIf) & ")"
If Not bWhatIf Then oFile.Delete (True)
End If

End If

Next
For Each oSubFolder In oFolder.SubFolders
RemoveFiles oSubFolder, nDays, bWhatIf
Next
End Sub
F. Dunoyer [MVP]
Le #17741091
a écrit :
Bonjour,

Je débute en vbs, je cherche un moyen de coder simplement la
suppression automatique des fichiers datant de +1 mois sur toute une
arborescence.
Je cherche des exemples de code qui traite ce problème, la récursivité
et la date de modification du fichier.

Merci.



et le même en langage de commande :) (avec bcp de commentaire... si si)

@rem +----------------------------------------------------------+
@rem + Purge des fichiers SQl de + de n jours +
@rem + Concerne les fichiers sur l'Unité amovible +
@rem + Francois Dunoyer +
@rem +----------------------------------------------------------+

:: par exemple Dossier ou sont sauvegardé les bases
Set cible=D:produitsMSSQLBackup

Set Action=Purge des fichiers backup SQL de + de 15 jours
for /R %Cible% %%i IN (.) do delOld /f="%%i*.*" /d /v



il faut par contre le petit utiliraire delold.exe :)

Il y'en a plusieurs
le mien c'est :
http://www.xs4all.nl/~chi/utilities/delold.html

sinon
http://www.savilltech.com/download.html
http://winhlp.com/node/386

--
François Dunoyer [MVP Windows Server Admin Framework]
Quelques liens pour Windows : http://fds.mvps.org/AdressesInternets.htm
Site perso : http://fds.mvps.org
Blog : http://fds34.spaces.live.com/
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #17746611
Bonsoir !

Perso, pour l'invite de commande, j'utilise Robocopy pour repérer les
fichiers à traiter (supprimer), puis un petit DEL fait l'affaire.
Mais, le demandeur ayant exigé du VBScript, je n'ai pas osé mettre mon
grain de sel.

@-salutations
--
Michel Claveau
F. Dunoyer [MVP]
Le #17794951
MCI (ex do ré Mi chel la si do) [MVP] a écrit :
Bonsoir !

Perso, pour l'invite de commande, j'utilise Robocopy pour repérer les
fichiers à traiter (supprimer), puis un petit DEL fait l'affaire.
Mais, le demandeur ayant exigé du VBScript, je n'ai pas osé mettre mon grain
de sel.

@-salutations



Je pars du principe que mon boulot c'est de remplir la mission :)
Si tu savais le nombre de fois où, pour reprendre une métaphore qui
m'est chère, on me demande de placer un tableau sans préciser où mais
en precisant bien que ça doit un travail de precision au marteau
piqueur :)

Dites moi où et laissez moi le choix des outils :)
fin de la digression :)

--
François Dunoyer [MVP Windows Server Admin Framework]
Des infos en Vrac : http://fds.mvps.org/ta/envrac.htm
Site perso : http://www.fdunoyer.net
Blog : http://fds34.spaces.live.com/
Publicité
Poster une réponse
Anonyme