2 Methods to Delete Files Older Than X Days on Windows

2 Methods to Delete Files Older Than X Days on Windows

There are various ways to free up disk space on the system. On of them to delete old files which are no longer needed after a certain period of time. It can be backup files, log files, and other temporary files. This tutorial shows how to delete files older than X days on Windows.

Method 1 - CMD

The forfiles command allows to select files and run another command on these files. Before deleting files, we can print them. For example, to find files older than 7 days run the following command:

forfiles /p "C:\Users\User\AppData\Local\Temp" /s /m *.* /d -7 /c "cmd /c echo @path"

Once confirmed, specify the del command instead of echo to delete files:

forfiles /p "C:\Users\User\AppData\Local\Temp" /s /m *.* /d -7 /c "cmd /c del @path"

The meaning of parameters that used in forfiles command:

  • /p - specifies the path to find files.
  • /s - find all files in the specified directory and all subdirectories.
  • /m - find files based on wildcard. The *.* means to find all files regardless of the file extension.
  • /d - find files by last modified date.
  • /c - specifies command to run it on each file.

We can filter files by specific extension. For example, to delete .tmp files older than 7 days run the following command:

forfiles /p "C:\Users\User\AppData\Local\Temp" /s /m *.tmp /d -7 /c "cmd /c del @path"

Method 2 - PowerShell

To find files older than 7 days run the Get-ChildItem command in PowerShell:

Get-ChildItem "C:\Users\User\AppData\Local\Temp" -Recurse -File | Where LastWriteTime -lt (Get-Date).AddDays(-7) | %{$_.FullName}

Once confirmed, replace %{$_.FullName} with Remove-Item -Force to delete files:

Get-ChildItem "C:\Users\User\AppData\Local\Temp" -Recurse -File | Where LastWriteTime -lt (Get-Date).AddDays(-7) | Remove-Item -Force

Files can be filtered and deleted by specific extension as well:

Get-ChildItem "C:\Users\User\AppData\Local\Temp" -Recurse -File -Filter *.tmp | Where LastWriteTime -lt (Get-Date).AddDays(-7) | Remove-Item -Force

Leave a Comment

Cancel reply

Your email address will not be published.