Script for removal of old backup or logfiles from a specific directory. The example below removes all files from a directory that are older than 90 days. A log of all files that are removed is written to the windows eventlog.
# Global config settings... [string]$sDirName = "D:\LogFiles" [string]$sFileNameMask = "*.log" [string]$sGCIMask = $sDirName + "\" + $sFileNameMask [string]$sEventLogMessage = "### Cleanup Script Started... ###`r`n" # Functions and Procedures... function fGetFileModTime([string]$sFileName) { $vFileInfo = get-childitem $sFileName return $vFileInfo.lastwritetime } # Start Main script... if (Test-Path $sDirName) { get-childitem $sGCIMask | % { # Get File Last Write Time... [datetime]$dFileModTime = fGetFileModTime($_.fullname) if ($dFileModTime -lt (Get-date).AddDays(-90)) { remove-item $_.fullname $sEventLogMessage = $sEventLogMessage + "File " + $_.fullname + " (" + $dFileModTime.DateTime + ") removed...`r`n" } } } # Finish and Cleanup... [string]$sEventLogMessage = $sEventLogMessage + "### Cleanup Script Finished... ###" write-eventLog -LogName "Windows PowerShell" -Source "PowerShell" -EventID 30001 -Message $sEventLogMessage -EntryType Information