Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 908
  • Last Modified:

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

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
bmlguy
Asked:
bmlguy
  • 4
1 Solution
 
PberSolutions ArchitectCommented:
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
 
PberSolutions ArchitectCommented:
woops, hang on, reverse logic
 
0
 
PberSolutions ArchitectCommented:
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
 
PberSolutions ArchitectCommented:
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
 
bmlguyAuthor Commented:
Perfect, thanks
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now