NERD MEMO: questo mi interessa molto!!!😀

Richard Siddaway's Blog

I was asked a question about deleting files from a folder based on age. The requirement was to delete all but the youngest N files.

One solution is a classic PowerShell one-liner. It is actually one PowerShell pipeline though I’ve split it across multiple lines for ease of reading.

Get-ChildItem -Path c:temp -Filter *.tmp -File |
sort LastWriteTime -Descending |
select -Skip 5 |
Remove-Item

Use Get-Childitem to read the files you’re interested in. I’ve used the –File parameetr to restrict the examination to files.

Sort the files on LastWriteTime – you could use CreationTime if the files haven’t been changed since creation. You want the results sorted in descending order so the latest files are at the top of the list. Younger dates are greater than older dates.

use Select-Object to skip the first N (in this case 5) files and pipe everything else into remove-item. Add a –whatif…

View original post 31 altre parole