Solved

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

Posted on 2009-05-20
5
887 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
[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
  • 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

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…
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

735 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