Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression sur une arborescence des fichiers datant de + 1 mois

6 réponses
Avatar
forumicrosoft
Bonjour,

Je d=E9bute 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=E8me, la r=E9cursivit=
=E9
et la date de modification du fichier.

Merci.

6 réponses

Avatar
Gilles LAURENT [MVP]
"" 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
Avatar
---DGI972---
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 ?
Avatar
Michel__D
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
Avatar
F. Dunoyer [MVP]
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/
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
F. Dunoyer [MVP]
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/