Solved

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

Posted on 2009-05-20
5
866 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
ID: 24433379
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
ID: 24433388
woops, hang on, reverse logic
 
0
 
LVL 26

Accepted Solution

by:
Pber earned 500 total points
ID: 24433401
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
ID: 24433641
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
ID: 31583563
Perfect, thanks
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

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

Suggested Solutions

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

911 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

23 Experts available now in Live!

Get 1:1 Help Now