This VBScript can be used to delete files in a folder that are older than a certain number of days compared to the file’s Last Modified Date. This example collects input from the user regarding the source folder, log file name, and the number of days to compare the file’s last modified timestamp.

Please note that this script will DELETE files.  Be careful as there is not much code listed below to validate what you are entering. If you provide the program with incorrect inputs, you can delete files that were not intended to be targeted.

‘vbscript to delete files older than a given number of days. ‘WARNING: Deleted files will not be stored in the recycle bin ’ ‘Declare variables Dim LogFile ’ ‘—– Start Main Sub —– Main Sub Main() SourceFolderNamePath=inputbox(“Enter the Source Path, ex. C:\Test") LogFileNamePath=inputbox(“Enter the LogFile Name Path, ex. C:\Logs\Deleted.TXT”) DeleteDaysOld=CInt(inputbox(“Enter the number of days in which a file should be deleted if older, ex. 30”)) Call DeleteOldFiles(SourceFolderNamePath,LogFileNamePath,DeleteDaysOld) End Sub ’ Sub DeleteOldFiles(SourceFolder, logfile, days) Dim fso,f,f1,s,fi, cnt, tot ’ LogOpen(logfile) LogWrite “——————————————————” LogWrite " Program Started…Searching for Files to Remove " LogWrite “——————————————————” cnt = 0 tot = 0 ’ Const ReadOnly = 1 Set fso = CreateObject(“Scripting.FileSystemObject”) Set f = fso.GetFolder(SourceFolder) Set fc = f.Files For Each f1 in fc If DateDiff (“d”,f1.DateLastModified, Now ) > days Then LogWrite f1.name & " DateLastModified:” & f1.DateLastModified & " DaysOld:" & DateDiff (“d”,f1.DateLastModified, Now ) If f1.Attributes And ReadOnly Then f1.Attributes = f1.Attributes Xor ReadOnly End If

fso.DeleteFile (SourceFolder & f1.name) cnt = cnt + 1End If tot = tot + 1 Next LogWrite “————————————————————–” LogWrite " Processed " & tot & " file(s). Deleted " & cnt & " file(s). " LogWrite “————————————————————–” LogClose MsgBox(“Delete process completed successfully.” + vbCRLF + “Please review the log file at " + logfile) ’ End Sub ’ ’ Sub LogOpen (LogPath) Dim fso, f1 Const ForAppend = 8 Set fso = CreateObject(“Scripting.FileSystemObject”) Set LogFile = fso.OpenTextFile(LogPath, ForAppend, True) Set fso = nothing End Sub ’ Sub LogWrite (Text) LogFile.WriteLine “[” & Now & “] " & Text End Sub ’ ’ Sub LogClose () LogFile.Close Set Logfile=nothing End Sub