:: This script searches the TEST folder and subfolders, \ :: then deletes files older than 21 days. :: :: If you want to make it more robust, you can add a timestamp to the file, :: so that you know when it was deleted :: $myDate = get-date -format -g :: $content = $myDate + " " + $File.FullName :: Add-Content $LogFile $content cls $Now = Get-Date $Days = "21" $Targetfolder = "c:\TEST" $LogFile = "C:\DeletedFiles.txt" #----- define LastWriteTime parameter based on $Days ---# $LastWrite = $Now.AddDays(-$Days) #----- get files based on lastwrite filter and specified folder ---# $Files = Get-Childitem $TargetFolder -Include $Extension -Exclude *.xml -Recurse | where {$_.LastWriteTime -le "$LastWrite"} foreach ($File in $Files) { if ($File -ne $Null) { Add-Content $LogFile $File.FullName write-host "Deleting File --> $File" -ForegroundColor "Green" Remove-Item $File.FullName | out-null } }