[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

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

VBS Script - Delete files/check date of files

Hi Guys,
I need some help combining these two scripts, the first script deletes backups that are a day old, the second script checks to see if there is more than two backups in the folder and if there is deletes everything in the backup folder.

what i need the script to do is....

Check to see if there is more than two files in the backup directory, if there is then delete the older backup of the two, and keep the newer backup....


here is the two scripts................

Option Explicit
on error resume next
Dim oFSO
Dim sDirectoryPath
Dim oFolder
Dim oFileCollection
Dim oFile
Dim iDaysOld
'Delete database backup files older than 1 days
iDaysOld = 1
Set oFSO = CreateObject("Scripting.FileSystemObject")
sDirectoryPath = "C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\"
set oFolder = oFSO.GetFolder(sDirectoryPath)
set oFileCollection = oFolder.Files
'If database backup files are older than 1 days, delete them.
For each oFile in oFileCollection
If oFile.DateLastModified < (Date() - iDaysOld) Then
oFile.Delete(True)
End If
Next
'Clean up
Set oFSO = Nothing
Set oFolder = Nothing
Set oFileCollection = Nothing
Set oFile = Nothing


Option Explicit
on error resume next
Dim oFSO
Dim sDirectoryPath
Dim oFolder
Dim oFileCollection
Dim oFile

'Delete delete all files in the directory if more than one file exists

Set oFSO = CreateObject("Scripting.FileSystemObject")
sDirectoryPath = "C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\"
set oFolder = oFSO.GetFolder(sDirectoryPath)

if oFolder.Files.count > 0 then
   set oFileCollection = oFolder.Files

   For each oFile in oFileCollection
      oFile.Delete(True)
   Next

   ' clean up
   Set oFile = Nothing
   Set oFileCollection = Nothing
End If

'Clean up
Set oFolder = Nothing
Set oFSO = Nothing





0
jay_eire
Asked:
jay_eire
1 Solution
 
mattcarverCommented:
>>what i need the script to do is....
>>Check to see if there is more than two files in the backup directory, if there is then delete the older backup of the two, and >>keep the newer backup....

You said you need the script to see if there are "more than two files" but I think you meant "two" file or "two or more".  If that is the case you can use the following script.

The following script will delete the oldest file in the directory but will only execute if there are 2 or more files in the directory.  This script does not check too see if the backup files are older than one day.  You didn't say you wanted that.

--------- cut and paste into a filename with a .vbs extension.  double-click to execute -----------
Option Explicit
on error resume next
Dim oFSO
Dim sDirectoryPath
Dim oFolder
Dim oFileCollection
Dim oFile
Dim CompDate

'Delete delete all files in the directory if more than one file exists
Set oFSO = CreateObject("Scripting.FileSystemObject")
sDirectoryPath = "C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\"
Set oFolder = oFSO.GetFolder(sDirectoryPath)
CompDate = Null

if oFolder.Files.count > 1 then
   set oFileCollection = oFolder.Files

   'Find the date of the oldest file
   For each oFile in oFileCollection
      If CDate(CompDate) > CDate(oFile.DateLastModified) Then
        CompDate = oFile.DateLastModified
      End If
   Next

   'Delete the file associated with the oldest date
   For each oFile in oFileCollection
      If CDate(oFile.DateLastModified) = CompDate Then oFile.Delete(True)
   Next

   ' clean up
   Set oFile = Nothing
   Set oFileCollection = Nothing
End If

'Clean up
Set oFolder = Nothing
Set oFSO = Nothing
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

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