Automatic IIS log housekeeping
A collection of scripts that can keep the IIS server's HTTP/SMTP/FTP logs from filling up drives.Depending on the script chosen, you can have different archiving (compression) and file retention times, or just simple delete-older-than log rotation. The log locations can be automatically retrieved from the IIS metabase (additional configuration needed for IIS 7.x), or specified manually.
- Script for specifying log locations manually, logs are archived and deleted
- Script for specifying log locations manually, logs are just deleted
- Script that finds log locations automatically, logs are archived and deleted
- Script that finds log locations automatically, logs are just deleted
Note that the scripts using compression need the command line version of the free 7-Zip compressor available on https://www.7-zip.org/download.html
Update 2011-11-05: The functionality of script two and four have been further developed into a standalone log rotation Windows service. If you want to avoid the hassle of setting up a scheduled task for the log rotation, you can use the service instead.
Housekeeping script, manual log locations, logs are archived and deleted:
Option Explicit
WScript.Timeout = 82800
' This Script archives (compresses to a zip file, then deletes the
' original) IIS log files older than a specified number of days.
' The script can also delete the compressed archive files older
' than another specified number of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space. IIS logs can typically be
' compressed to well below 1/20 of the original file size.
'
' The script needs the command line version of the free 7-Zip
' compressor available on https://www.7-zip.org/
'
' The ArchiveLogFiles function takes three parameters:
' "Path to log dir"
' "Compress log files older than n days and delete the original files"
' "Delete compressed log files older than n days"
'
' Multiple function calls can be added to archive files in different
' log folders with different log retentions.
'
' Note that the function runs through subfolders recursively, so if
' the same log retention should be used on a whole log folder tree
' structure, only one call with the root log folder is needed.
' Additional calls with specific subfolders can then be made to have
' shorter retentions on those.
'
' Edit the example lines below to match the log folder paths,
' archive and retention values needed on the server.
ArchiveLogFiles "D:\Logfiles", 30, 180
ArchiveLogFiles "D:\Logfiles\W3SVC1", 14, 30
ArchiveLogFiles "D:\Logfiles\W3SVC243", 5, 30
ArchiveLogFiles "D:\Logfiles\SMTPSVC1", 7, 60
Function ArchiveLogFiles(strLogPath, intZipAge, intDelAge)
Dim objFs
Dim objFsCheck
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFsCheck = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
ArchiveLogFiles strLogPath & objSubFolder.Name, intZipAge, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intZipAge Then
objWShell.Run "7za.exe a -tzip """ & strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip"" """ & _
strLogPath & objFile.Name & """", 7, true
If objFsCheck.FileExists(strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip") And _
(objFsCheck.FileExists(strLogPath & objFile.Name)) Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
ElseIf (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".zip") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFsCheck = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
WScript.Timeout = 82800
' This Script archives (compresses to a zip file, then deletes the
' original) IIS log files older than a specified number of days.
' The script can also delete the compressed archive files older
' than another specified number of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space. IIS logs can typically be
' compressed to well below 1/20 of the original file size.
'
' The script needs the command line version of the free 7-Zip
' compressor available on https://www.7-zip.org/
'
' The ArchiveLogFiles function takes three parameters:
' "Path to log dir"
' "Compress log files older than n days and delete the original files"
' "Delete compressed log files older than n days"
'
' Multiple function calls can be added to archive files in different
' log folders with different log retentions.
'
' Note that the function runs through subfolders recursively, so if
' the same log retention should be used on a whole log folder tree
' structure, only one call with the root log folder is needed.
' Additional calls with specific subfolders can then be made to have
' shorter retentions on those.
'
' Edit the example lines below to match the log folder paths,
' archive and retention values needed on the server.
ArchiveLogFiles "D:\Logfiles", 30, 180
ArchiveLogFiles "D:\Logfiles\W3SVC1", 14, 30
ArchiveLogFiles "D:\Logfiles\W3SVC243", 5, 30
ArchiveLogFiles "D:\Logfiles\SMTPSVC1", 7, 60
Function ArchiveLogFiles(strLogPath, intZipAge, intDelAge)
Dim objFs
Dim objFsCheck
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFsCheck = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
ArchiveLogFiles strLogPath & objSubFolder.Name, intZipAge, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intZipAge Then
objWShell.Run "7za.exe a -tzip """ & strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip"" """ & _
strLogPath & objFile.Name & """", 7, true
If objFsCheck.FileExists(strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip") And _
(objFsCheck.FileExists(strLogPath & objFile.Name)) Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
ElseIf (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".zip") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFsCheck = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
Housekeeping script, manual log locations, logs are just deleted:
Option Explicit
WScript.Timeout = 82800
' This Script deletes IIS log files older than a specified number
' of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space.
'
' The DeleteLogFiles function takes two parameters:
' "Path to log dir"
' "Delete log files older than n days"
'
' Multiple function calls can be added to delete files in different
' log folders with different log retentions.
'
' Note that the function runs through subfolders recursively, so if
' the same log retention should be used on a whole log folder tree
' structure, only one call with the root log folder is needed.
' Additional calls with specific subfolders can then be made to have
' shorter retentions on those.
'
' Edit the example lines below to match the log folder paths and
' retention values needed on the server.
DeleteLogFiles "D:\Logfiles", 30
DeleteLogFiles "D:\Logfiles\W3SVC1", 14
DeleteLogFiles "D:\Logfiles\W3SVC243", 5
DeleteLogFiles "D:\Logfiles\SMTPSVC1", 7
Function DeleteLogFiles(strLogPath, intDelAge)
Dim objFs
Dim objFolder
Dim objSubFolder
Dim objFile
Set objFs = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
DeleteLogFiles strLogPath & objSubFolder.Name, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFs.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFolder = Nothing
End If
End Function
WScript.Timeout = 82800
' This Script deletes IIS log files older than a specified number
' of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space.
'
' The DeleteLogFiles function takes two parameters:
' "Path to log dir"
' "Delete log files older than n days"
'
' Multiple function calls can be added to delete files in different
' log folders with different log retentions.
'
' Note that the function runs through subfolders recursively, so if
' the same log retention should be used on a whole log folder tree
' structure, only one call with the root log folder is needed.
' Additional calls with specific subfolders can then be made to have
' shorter retentions on those.
'
' Edit the example lines below to match the log folder paths and
' retention values needed on the server.
DeleteLogFiles "D:\Logfiles", 30
DeleteLogFiles "D:\Logfiles\W3SVC1", 14
DeleteLogFiles "D:\Logfiles\W3SVC243", 5
DeleteLogFiles "D:\Logfiles\SMTPSVC1", 7
Function DeleteLogFiles(strLogPath, intDelAge)
Dim objFs
Dim objFolder
Dim objSubFolder
Dim objFile
Set objFs = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
DeleteLogFiles strLogPath & objSubFolder.Name, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFs.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFolder = Nothing
End If
End Function
Housekeeping script, automatic log locations, logs are archived and deleted:
Option Explicit
WScript.Timeout = 82800
' This Script archives (compresses to a zip file, then deletes the
' original) IIS log files older than a specified number of days.
' The script can also delete the compressed archive files older
' than another specified number of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space. IIS logs can typically be
' compressed to well below 1/20 of the original file size.
'
' The script needs the command line version of the free 7-Zip
' compressor available on https://www.7-zip.org/
'
' Edit the values for intZipAge and intDelAge to set the archive and
' retention times needed on the server.
'
' The locations of the IIS log files are found automatically (for this
' to also work on IIS 7.x on Windows Vista, Windows Server 2008 or
' Windows 7, please enable "IIS 6 Metabase Compatibility" aka
' "IIS Metabase and IIS 6 configuration compatibility").
Dim intZipAge
Dim intDelAge
intZipAge = 30
intDelAge = 180
Dim objIIS
Dim objWeb
Dim objIISOuter
Dim objWebOuter
Set objIISOuter = GetObject("IIS://LOCALHOST")
For Each objWebOuter in objIISOuter
If LCase(objWebOuter.Class) = "iiswebservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/W3SVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iiswebserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\W3SVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iissmtpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/SMTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iissmtpserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\SMTPSVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iisftpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/MSFTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iisftpserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\MSFTPSVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
End If
Next
Set objIIS = nothing
Set objIISOuter = nothing
Function ArchiveLogFiles(strLogPath, intZipAge, intDelAge)
Dim objFs
Dim objFsCheck
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFsCheck = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
ArchiveLogFiles strLogPath & objSubFolder.Name, intZipAge, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intZipAge Then
objWShell.Run "7za.exe a -tzip """ & strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip"" """ & _
strLogPath & objFile.Name & """", 7, true
If objFsCheck.FileExists(strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip") And _
(objFsCheck.FileExists(strLogPath & objFile.Name)) Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
ElseIf (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".zip") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFsCheck = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
WScript.Timeout = 82800
' This Script archives (compresses to a zip file, then deletes the
' original) IIS log files older than a specified number of days.
' The script can also delete the compressed archive files older
' than another specified number of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space. IIS logs can typically be
' compressed to well below 1/20 of the original file size.
'
' The script needs the command line version of the free 7-Zip
' compressor available on https://www.7-zip.org/
'
' Edit the values for intZipAge and intDelAge to set the archive and
' retention times needed on the server.
'
' The locations of the IIS log files are found automatically (for this
' to also work on IIS 7.x on Windows Vista, Windows Server 2008 or
' Windows 7, please enable "IIS 6 Metabase Compatibility" aka
' "IIS Metabase and IIS 6 configuration compatibility").
Dim intZipAge
Dim intDelAge
intZipAge = 30
intDelAge = 180
Dim objIIS
Dim objWeb
Dim objIISOuter
Dim objWebOuter
Set objIISOuter = GetObject("IIS://LOCALHOST")
For Each objWebOuter in objIISOuter
If LCase(objWebOuter.Class) = "iiswebservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/W3SVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iiswebserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\W3SVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iissmtpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/SMTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iissmtpserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\SMTPSVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iisftpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/MSFTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iisftpserver" Then
Call ArchiveLogFiles( _
objWeb.LogFileDirectory & "\MSFTPSVC" & objWeb.Name, _
intZipAge, _
intDelAge)
End If
Next
End If
Next
Set objIIS = nothing
Set objIISOuter = nothing
Function ArchiveLogFiles(strLogPath, intZipAge, intDelAge)
Dim objFs
Dim objFsCheck
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFsCheck = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
ArchiveLogFiles strLogPath & objSubFolder.Name, intZipAge, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intZipAge Then
objWShell.Run "7za.exe a -tzip """ & strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip"" """ & _
strLogPath & objFile.Name & """", 7, true
If objFsCheck.FileExists(strLogPath & _
Left(objFile.Name,Len(objFile.Name)-3) & "zip") And _
(objFsCheck.FileExists(strLogPath & objFile.Name)) Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
ElseIf (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".zip") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFsCheck.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFsCheck = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
Housekeeping script, automatic log locations, logs are just deleted:
Option Explicit
WScript.Timeout = 82800
' This Script deletes IIS log files older than a specified number
' of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space.
'
' Edit the value for intDelAge to set retention times needed on
' the server.
'
' The locations of the IIS log files are found automatically (for this
' to also work on IIS 7.x on Windows Vista, Windows Server 2008 or
' Windows 7, please enable "IIS 6 Metabase Compatibility" aka
' "IIS Metabase and IIS 6 configuration compatibility").
Dim intDelAge
intDelAge = 30
Dim objIIS
Dim objWeb
Dim objIISOuter
Dim objWebOuter
Set objIISOuter = GetObject("IIS://LOCALHOST")
For Each objWebOuter in objIISOuter
If LCase(objWebOuter.Class) = "iiswebservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/W3SVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iiswebserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\W3SVC" & objWeb.Name, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iissmtpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/SMTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iissmtpserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\SMTPSVC" & objWeb.Name, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iisftpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/MSFTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iisftpserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\MSFTPSVC" & objWeb.Name, _
intDelAge)
End If
Next
End If
Next
Set objIIS = nothing
Set objIISOuter = nothing
Function DeleteLogFiles(strLogPath, intDelAge)
Dim objFs
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
DeleteLogFiles strLogPath & objSubFolder.Name, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFs.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
WScript.Timeout = 82800
' This Script deletes IIS log files older than a specified number
' of days.
'
' Run it as a daily scheduled task on high traffic web servers to
' avoid running out of disc space.
'
' Edit the value for intDelAge to set retention times needed on
' the server.
'
' The locations of the IIS log files are found automatically (for this
' to also work on IIS 7.x on Windows Vista, Windows Server 2008 or
' Windows 7, please enable "IIS 6 Metabase Compatibility" aka
' "IIS Metabase and IIS 6 configuration compatibility").
Dim intDelAge
intDelAge = 30
Dim objIIS
Dim objWeb
Dim objIISOuter
Dim objWebOuter
Set objIISOuter = GetObject("IIS://LOCALHOST")
For Each objWebOuter in objIISOuter
If LCase(objWebOuter.Class) = "iiswebservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/W3SVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iiswebserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\W3SVC" & objWeb.Name, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iissmtpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/SMTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iissmtpserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\SMTPSVC" & objWeb.Name, _
intDelAge)
End If
Next
ElseIf LCase(objWebOuter.Class) = "iisftpservice" Then
Set objIIS = GetObject("IIS://LOCALHOST/MSFTPSVC")
For Each objWeb in objIIS
If LCase(objWeb.Class) = "iisftpserver" Then
Call DeleteLogFiles( _
objWeb.LogFileDirectory & "\MSFTPSVC" & objWeb.Name, _
intDelAge)
End If
Next
End If
Next
Set objIIS = nothing
Set objIISOuter = nothing
Function DeleteLogFiles(strLogPath, intDelAge)
Dim objFs
Dim objFolder
Dim objSubFolder
Dim objFile
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
Set objFs = CreateObject("Scripting.FileSystemObject")
If Right(strLogPath, 1) <> "\" Then
strLogPath = strLogPath & "\"
End If
If objFs.FolderExists(strLogPath) Then
Set objFolder = objFs.GetFolder(strLogPath)
For Each objSubFolder in objFolder.subFolders
DeleteLogFiles strLogPath & objSubFolder.Name, intDelAge
Next
For Each objFile in objFolder.Files
If (InStr(objFile.Name, "ex") > 0) _
And (Right(objFile.Name, 4) = ".log") Then
If DateDiff("d",objFile.DateLastModified,Date) > intDelAge Then
objFs.DeleteFile(strLogPath & objFile.Name)
End If
End If
Next
Set objFs = Nothing
Set objFolder = Nothing
Set objWShell = nothing
End If
End Function
Tags: software
Page last updated 2009-11-23 18:45. Some rights reserved (CC by 3.0)