troubleshooting Question

VB Script to delete files based on age not working

Avatar of snooflehammer
snooflehammerFlag for Australia asked on
VB ScriptPC
7 Comments1 Solution91 ViewsLast Modified:
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 keep
Const strDir = "E:\Record"
Const intAge = 20

' Create file system object
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

' Remove old files recursively
RemoveOldFiles 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 If
End 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.

Any dies? The logged on user is an admin.
Annotation-2019-11-21-112824.jpg
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 7 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 7 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros