Recently, I came across the situation, where I had to delete outdated SQL backup files from our MS SQL servers Backup directory. To tidy up the backup folder, I wrote a small VB script which handles this for me:
' DeleteOutdated ' ' Parameters ' MaxFileAge: Maximum file age in days (modification date) ' Path: Folder which contains the files ' ' VBScript ref. http://msdn.microsoft.com/en-us/library/t0aew7h6(VS.85).aspx ' FSO ref. http://msdn.microsoft.com/en-us/library/z9ty6h50(VS.85).aspx Dim objFso Set objFso = CreateObject("Scripting.FileSystemObject") Sub DeleteOutdated(Path, MaxFileAge) Set objDir = objFso.GetFolder(Path) For Each objFile in objDir.Files If objFile.DateLastModified < (Date() - MaxFileAge) Then AskDelete = MsgBox("Delete "&objFile.Path&"?",3,"Delete file") If AskDelete = 6 Then objFile.Delete End If If AskDelete = 2 Then WScript.Quit End If End If Next For Each objSubfolder in objDir.Subfolders Call DeleteOutdated(objSubfolder, MaxFileAge) Next End Sub Call DeleteOutdated("c:\outdatedstuff", 1)
In this state, the script asks to delete everytime, if it finds a file wich is older than specified. Of course, you might want to remove that in productive usage, when script execution is scheduled.
Here I attached a version, which writes a logfile and processes empty subfolders (updated on 26.08.2009):