VB Script to delete files based on age not working
Script was working on another PC. I moved a surveillance system to a new PC and I want to schedule a script to delete files older than 20 days to maintain disk space.
The system stores video in E:\Record. There are 4 subfolders called Cam01, Cam02 etc..
This is the script:
' Specify base folder to purge, and age in days of files to keepConst strDir = "E:\Record"Const intAge = 20' Create file system objectSet objFSO = WScript.CreateObject("Scripting.FileSystemObject")' Remove old files recursivelyRemoveOldFiles objFSO.GetFolder(strDir)Sub RemoveOldFiles(objFolder) On Error Resume Next ' If no files of subfolders exist on first check, leave it alone If objFolder.Files.Count = 0 And objFolder.Subfolders.Count = 0 Then Exit Sub End If ' Remove any files older than specified days from this folder For Each objFile In objFolder.Files intFileAge = DateDiff("d", objFile.DateLastModified, Now) If intFileAge > intAge Then Wscript.Echo "Deleted file: """ & objFile.Path & """ Age: " & intFileAge & """." objFile.Delete End If Next ' See if we were able to access this folder, if not don't recurse into it If Err.Number = 0 Then ' Remove all older files in any subfolders of this one For Each objSubFolder In objFolder.Subfolders RemoveOldFiles objSubFolder Next Else ' Report error if anable to access a folder Wscript.Echo "Error: """ & Err.Number & """ accessing folder: " & objFolder.Path & """." Exit Sub End If ' If folder is now empty, we purged its contents, so remove it If objFolder.Files.Count = 0 And objFolder.Subfolders.Count = 0 Then Wscript.Echo "Removing empty folder: """ & objFolder.Path & """." objFolder.Delete End IfEnd Sub
When the script runs it looks like it is deleting the video files as the attached screenshot shows, but they are not deleted and there is an error at the end of the deletion run for each Cam0x subfolder, also on the screenshot.