Introduction
Cleaning up old log files helps keep your computer tidy and saves space. Automating this task means you don't have to do it by hand.
Get-ChildItem -Path <folder_path> -Filter <file_pattern> | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-<days>) } | Remove-ItemGet-ChildItem -Path C:\Logs -Filter *.log | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-ItemGet-ChildItem -Path D:\App\Logs -Filter *.txt | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Itemparam(
[string]$LogFolder = "C:\Logs",
[int]$DaysToKeep = 30
)
Write-Host "Starting log cleanup in folder: $LogFolder"
$oldLogs = Get-ChildItem -Path $LogFolder -Filter *.log | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$DaysToKeep) }
if ($oldLogs.Count -eq 0) {
Write-Host "No log files older than $DaysToKeep days found."
} else {
foreach ($log in $oldLogs) {
Write-Host "Deleting: $($log.FullName)"
Remove-Item $log.FullName
}
Write-Host "Cleanup complete. Deleted $($oldLogs.Count) files."
}C:\Logs?Get-ChildItem -Path 'C:\Logs' -Filter '*.log' | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -WhatIfGet-ChildItem -Path 'C:\Logs' -Filter '*.log' | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-15) } | Remove-ItemC:\Logs and log the deleted filenames to deleted_logs.txt. Which script correctly does this?Pass the test and this pattern moves unknown