How to remove temporary files after reboot on Windows?

Instead of going through the trouble (and danger) of doing this manually, I would recommend a program like CCleaner which can automate this process and leaves alone files that were created within the last 24 hours.

This is quite important, since some programs that might also run on startup could already be using temporary files, potentially causing issues. On Linux, the /tmp directory is known to be cleared out on every reboot, and all Linux programs are therefore designed around that principle.

Here's how to make CCleaner start with Windows: CCleaner options

Make sure only "Temporary Files" and other things you really want to clear on every startup are checked: CCleaner selection

CCleaner should only delete files over a day old by default, but it doesn't hurt to check this setting: CCleaner advanced options

After all this is done, CCleaner should run quietly in the notification area at every startup. The icon will disappear when cleaning is complete. CCleaner tray icon


I don't think there's an option for that. You can create a .bat file to delete the temporary files and make it run on startup (when Windows starts). The following should work:

Delete all files in %temp% but leave the folders untouched:

@echo off
del /s /f /q "%temp%/*.*"

Delete everything on %temp%:

@echo off
rmdir /s /q %temp%
md %temp%

Delete all .tmp files:

@echo off
del /s /f /q "%temp%/*.tmp"

Be aware that some programs use files in %temp% to run so do this at your own risk.

To make the .bat run on startup follow this tutorial from Microsoft or one of the many others online...