Solved

VBS: Delete any files that are > 5 days old ANDF 0 kb filesize

Posted on 2009-05-03
5
651 Views
Last Modified: 2012-05-06
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

Open in new window

0
Comment
Question by:MonMuscRS
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 10

Expert Comment

by:TakedaT
ID: 24291888
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?
0
 

Author Comment

by:MonMuscRS
ID: 24291909
No errors, no results. The files are not being eliminated.
 
0
 
LVL 7

Expert Comment

by:Alpha Au
ID: 24292375
please remark the
on error resume Next
and run again. (for debug)

all error are hidden so that you found no error.
0
 

Author Comment

by:MonMuscRS
ID: 24295323
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!
0
 
LVL 10

Accepted Solution

by:
TakedaT earned 125 total points
ID: 24300346
If this is where your file size logic is:
      if oCdate >= 15 And objFSO.size < 2 Then

Shouldnt it read
      if oCdate >= 15 And oFile.size < 2 Then
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
change the windows script file to BAT 10 56
A Table within a User Form 24 63
Need help Creating PowerShell Script 4 46
HTA with vb script to restart specific windows services 12 73
This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question