Delete temporary files from batch script in xp

Here's a little script I wrote that I keep on my USB utility drive... GREAT for citrix servers :)

@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
    RMDIR /S /Q "%%G\Local Settings\Temp"
    MKDIR "%%G\Local Settings\Temp"
    Echo Cleared %%G\Local Settings\Temp
    Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
    MKDIR "%%G\Local Settings\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
    RMDIR /S /Q "%%G\AppData\Local\Temp\"
    MKDIR "%%G\AppData\Local\Temp\"
    Echo Cleared %%G\AppData\Local\Temp\
    Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
    RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
    Echo Cleared %%G\Local Settings\Temporary Internet Files\
    Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt

Use at your own risk, etc... THIS DELETES STUFF.

I run this from the Documents and Settings folder or Users on Vista. You could easily throw a CD command up top to run this from anywhere you want.

cd %userprofile%
cd ..

Also, it's generally safe to clear the temp folder at any time in my experience. Programs using files in temp will lock them, and this script will error on that file and keep going.

The IF EXIST line is particularly nice here, it keeps the script from creating folders in NetworkService and similar folders, and if you aren't running it on Vista or XP that section goes by super fast.

Creates temps.txt logfile where ever you run the script from

Edit: Advice from ##windows-server on Freenode: Q: Why don't you detect which OS it's running on in the begining and run the appropriate section? A: I use the script frequently on offline media, such as a hard drive that's been extracted.


Be careful about trashing temporary files. Some software installers stash files there between boots. An old boss of mine stored important files there (but, then, he wasn't too bright about some things).

In a batch file, do:

DEL /S /Q "%TEMP%\*.*"

Will do what you want. Running that as a logon-script (or while logged-on, in general) will clear the per-user temp directory. Running it as a startup script (while running as as .DEFAULT) will clear the per-machine temp directory.

I have a VBScript that I run to clean out temporary files on boot and on logon based on their age. It's something that belongs to a Customer so I can't post it here (wrote it on their dime), but it's something that a scripter could put together in a few minutes for you.

I'm not aware of a supported API to clean out the IE "Temporary Internet Files". You could just delete them, I suppose, but I wouldn't.