Solved

VBS Script - Delete files/check date of files

Posted on 2006-10-26
1
7,360 Views
Last Modified: 2011-10-03
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
Comment
Question by:jay_eire
1 Comment
 
LVL 4

Accepted Solution

by:
mattcarver earned 500 total points
ID: 17834714
>>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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

You may have already been in the need to update a whole folder stucture using a script. Robocopy does it well and even provides a list of non-updated files in a log (if asked to). Generally those files that were locked by a user or a process by the …
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…

932 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

14 Experts available now in Live!

Get 1:1 Help Now