We have already shown you how flexible the Linux shell can be, but that’s not to say Windows is any further behind. Here’s two techniques you can use depending on your shell preference, cmd or PowerShell.
PowerShell 3
Get-ChildItem –Path “C:\Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item
PowerShell 2
Get-ChildItem –Path “C:\Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Remove-Item
Explanation
- Firstly we get FileInfo and DirectoryInfo objects in the Path C:\Backups.
- FileInfo and DirectoryInfo objects both contain a CreationTime property, so we can filter the collection using that.
- The –lt (less than) operator is then used to compare the CreationTime property of the objects with Get-Date (the current date) subtract 5 days.
- This then leaves us with a collection of objects that were created more than 5 days ago, which we pass to Remove-Item.
Pro Tip
To see what will be removed you can use the –WhatIf parameter:
Get-ChildItem –Path “C:\Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item –WhatIf
Command Prompt
While we recommend you use one of the PowerShell methods, without getting into any of the gritty details you can also do it from command prompt.
forfiles -p "C:\Backups" -s -m *.* -d -5 -c "cmd /c del @path"
Pro Tip
To see what files are going to be deleted you can use echo.
forfiles -p "C:\Backups" -s -m *.* -d -5 -c "cmd /c echo @file"
- › How to Build a Fast Online Store With Nexcess Managed WooCommerce
- › How to Install or Remove Optional Features in Windows 11
- › 8BitDo Controllers Now Work Better With iPhone and Mac
- › Razer Now Sells a Tempered Glass Mousepad
- › Telegram’s New Update Will Help You Save Battery Life
- › Today Only: Save 63% On a Samsung Galaxy S23 Ultra With Trade-In