Solved

VB script, delete files older than 7 days, but skip specific files

Posted on 2009-05-20
5
854 Views
Last Modified: 2012-05-07
Hi I want to use this code that deletes files older than 7 days but add logic that doesn't delete any *-Init.log files. I know this has to be pretty simple, but I'm rusty with vb script.

Thanks


Dim strPath = "C:\Temp\"

Dim iDays = 7
 

Set objFolder = objFSO.GetFolder(strPath)

For Each objItem In objFolder.Files

   If objItem.DateLastModified < date() - iDays

	if objIte then

      objFSO.DeleteFile(strPath & objitem.Name)

   End If

Next

Open in new window

0
Comment
Question by:bmlguy
  • 4
5 Comments
 
LVL 26

Expert Comment

by:Pber
Comment Utility
Try this:
strPath = "C:\Temp\"

iDays = 7

mask = "-init.log"

 

Set objFSO = CreateObject("Scripting.FileSystemObject")
 

Set objFolder = objFSO.GetFolder(strPath)

For Each objItem In objFolder.Files

   If objItem.DateLastModified < date() - iDays then

		WScript.Echo(objitem.Name)

		If InStr(1,lcase(objitem.Name),lcase(mask)) Then

			WScript.Echo(objitem.Name & " Deleted.")

			objFSO.DeleteFile objItem

		End if     

   End If

Next

Open in new window

0
 
LVL 26

Expert Comment

by:Pber
Comment Utility
woops, hang on, reverse logic
 
0
 
LVL 26

Accepted Solution

by:
Pber earned 500 total points
Comment Utility
Try this:
 

strPath = "C:\Temp\"

iDays = 7

mask = "-init.log"

 

Set objFSO = CreateObject("Scripting.FileSystemObject")
 

Set objFolder = objFSO.GetFolder(strPath)

For Each objItem In objFolder.Files

   If objItem.DateLastModified < date() - iDays then

		WScript.Echo(objitem.Name)

		If InStr(1,lcase(objitem.Name),lcase(mask)) = 0 Then

			WScript.Echo(objitem.Name & " Deleted.")

			objFSO.DeleteFile objItem

		Else

			WScript.Echo(objitem.Name & " not Deleted.")

		End if     

   End If

Next

Open in new window

0
 
LVL 26

Expert Comment

by:Pber
Comment Utility
Here's some other references to manipulating files:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23249766.html
 
 

'I've also used a subroutine like this to delete files older than 24 hours from our MFD scanner.  It runs as a scheduled task once a day.
 

objStartFolder = "e:\scans"         'folder to monitor

intHoursToKeep = 24                 'change this to modify the hours to keep
 

' ********************* Do not modify below this line *********************

strNOW = Now
 

'title

WScript.Echo("Folder,File,Last Modified,Present time,Status")
 

'Process files in root of start folder

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files

For Each objFile in colFiles

    processFile objFile,objFolder 

Next
 

'process file is all subfolders of the start folder (recursive)

ShowSubfolders objFSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)

    For Each Subfolder in Folder.SubFolders

        Set objFolder = objFSO.GetFolder(Subfolder.Path)

        Set colFiles = objFolder.Files

        For Each objFile in colFiles

            processFile objFile,objFolder

        Next

        ShowSubFolders Subfolder

    Next

End Sub
 

'deletes the file if older than hours to keep

sub processFile(objfile,objfolder)

	If DateDiff("h", objFile.DateLastModified, Now) > intHoursToKeep Then

 		WScript.Echo(objfolder.path & "," & objfile.name & "," & objfile.DateLastModified & "," & strNOW & ",Deleted")

		objFSO.DeleteFile objFile

	Else

		WScript.Echo(objfolder.path & "," & objfile.name & "," & objfile.DateLastModified & "," & strNOW& ",Not Deleted")

	End if

End sub

Open in new window

0
 

Author Closing Comment

by:bmlguy
Comment Utility
Perfect, thanks
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Setting up a Microsoft WSUS update system is free relatively speaking if you have hard disk space and processor capacity.   However, WSUS can be a blessing and a curse. For example, there is nothing worse than approving updates and they just have…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

762 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now