How to delete files older than X days automatically using PowerShell

On Windows 10, Storage sense is a feature to automatically free up space when you’re running low on storage. It does this by deleting junk files from apps, and those files that have been in the recycle bin or Downloads folder for more than a month.

Although this feature can be useful to control the storage space, it’s limited and doesn’t offer an option to manually add different locations to monitor and delete files that hasn’t change in the last month.

If you store non-important files on a different location, it’s possible to use PowerShell and Task Scheduler to monitor and clean up files from any folder that are older than a specified number of days.

In this guide, you’ll learn the steps to automatically delete files that haven’t been modified in the last month or any number of days you specify on Windows 10.

Important: Before running the command on the folder you want to cleanup, make sure to test the command using a test folder, as specifying the wrong parameter can cause to delete the wrong files.

How to use PowerShell to delete files older than X days on Windows 10

If you have different folders with a lot of files and you would like to cleanup by deleting those older than certain days, you can use these steps:

1. Open Start.

2. Search for Windows PowerShell, right-click the result and select Run as administrator.

3. Type the following command to delete files that haven’t been modified in the last 30 days and press Enter:

Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item In the above command remember to change "C:\path\to\folder" specifying the path to the folder that you want to delete files, and change -30 to select files with a last modified date. How to use Task Scheduler to delete files older than X days automatically on Windows 10 The command in the previous instructions allows you to delete files in a folder that are older than 30 days, but you need to open PowerShell and execute the command manually every time you want to free up space. If you want to automate the process, you need to use the Task Scheduler on Windows 10 to create a task that executes the command at specified intervals. Before proceeding copy and paste the following command into a Notepad text file, and save it as cleanup.ps1: Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item

In the above command remember to change "C:\path\to\folder" specifying the path to the folder that you want to delete files, and change -30 to select files with a last modified date.

1. Open Start.

2. Search for Task Scheduler and click the result.

3. Right-click the Task Scheduler Library folder.

4. Click New Folder.

5. Type any name for the folder and click OK. (We’re creating a new folder to keep tasks organized and separated from the system tasks.)

6. Right-click the recently created folder.

8. In the “Name” box, enter a name for the task.

9. In the “General” tab, under the “Security options” section, select the Run whether user is logged on or not option. (This is the option that will make the command window not to appear when the task runs automatically.)

10. Don’t check the Do not store password option.

11. Go to the “Triggers” tab, and click the New button.

12. Using the “Begin the task” drop-down menu, select On a schedule.

13. Under “Settings,” specify when you want the task to run (e.g., On time, Daily, Weekly, Monthly). Whatever option you select, make sure to specify the Start settings on the right side.

14. Click OK.

15. Go to the “Actions” tab, and click the New Button.

16. Using the “Actions” drop-down menu, select Start a program.

17. Under “Settings,” type the following command:

powershell.exe
18. In the “Add arguments” box type the following command and click OK

-ExecutionPolicy Bypass C:\path\to\cleanup.ps1

In the above command remember to change "C:\path\to\cleanup.ps1" specifying the path to the PowerShell script you have previouly created to delete files.

19. Go to the “Settings” tab, and make sure to check the following options:

• Allow task to be run on demand.
• Run task as soon as possible after a scheduled start missed.
• If the task fails, restart everything.
20. Click OK.