[CmdletBinding()] param( [int]$OlderThan=7 ) ## Create a new timespan to compare with last write date of the target directory $timedelta = New-TimeSpan -Days $OlderThan ## Remove all files and directories Foreach ( $item in (Get-ChildItem -Path "${Env:WinDir}\TEMP") ) { ## If it's older than the number of days specified, recursively delete the directory If ( $item.LastWriteTime -lt ((Get-Date) - $timedelta) ) { Remove-Item $item.FullName -Recurse -ErrorAction SilentlyContinue -Force } }