MonMuscRS
asked on
VBS: Delete any files that are > 5 days old ANDF 0 kb filesize
Hello, I need a vbs that will scan a folder and delete any files that are > 5 days old with 0 kb filesize. Can anyone offer any suggestions?
Dim fso, objShell
'===================================
'Start of Sub-routine
Sub fFIND(oFolder)
DIM oFile
DIM oSdate, oCdate,objFile
'Look at each file in the current folder
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile((oFile.Name), "C:\myfolder\Log20*")
For Each oFile in oFolder.Files
'Check for a file of the format *LOG20*.TXT
if inStr(uCase(oFile.Name), "LOG20") > 0 and uCase(right(oFile.name,4)) = ".TXT" then
oSdate = DateValue(oFile.DateLastModified)
oCdate = DateDiff("d", oSdate, Date)
'Log and delete *LOG20*.TXT files older than 15 days
if oCdate >= 15 And objFSO.size < 2 Then
Call LoggerF(oFile.Path)
oFile.Delete True
End if
end If
Next
End Sub
'======================================
'=====================
'Write Log Sub
Sub LoggerF(fPath)
DIM oFSO, oStream, oFile, WshNetwork
On Error Resume Next
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile("CleanupLog.txt")
Set oStream = oFile.OpenAsTextStream(8, 0)
oStream.Write VbCrLf & Ucase(WshNetwork.UserName) & " deleted " & fPath & " at " & Now
oStream.Close
set oStream = Nothing
set oFile = Nothing
set oFSO = Nothing
set WshNetwork = Nothing
End Sub
'=====================
on error resume Next
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = Wscript.CreateObject("Wscript.Shell")
'Call the Sub-routine that searches and deletes the files
fFIND fso.GetFolder("C:\myfolder")
objShell.LogEvent EVENT_SUCCESS, "Log file cleanup finished at " & date
Wscript.Quit
set objShell = Nothing
set fso = Nothing
Is there something wrong in the code you provided? Do you get errors when its ran? If so, can you tell what lines the errors are on?
ASKER
No errors, no results. The files are not being eliminated.
please remark the
on error resume Next
and run again. (for debug)
all error are hidden so that you found no error.
on error resume Next
and run again. (for debug)
all error are hidden so that you found no error.
ASKER
No error still when I commented out the "On Error Resume Next" but when I commented out the file size dependent logic, it worked. I really would like to only remove the 0 kb files, can you see a flaw in my logic?
Thank you for your time!
Thank you for your time!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.