I'm looking for a good batch script that would quickly find & clean all the known safe temporary folders/files from Windows (as many variants as possible) machines (e.g. the windows temp folder, all users IE temp folders, etc.). I'm fond of UI tools like CCleaner (over Cleanmgr.exe), but when I'm trying to clean several computers quickly and/or with minimal involvement, it would be nice to have a script.
Plus with a script, I could chain several scripts together. Maybe one to then fire up various antivirus and/or malware detectors.
Anyone have a good one or can point to a good resource?
Here's a little script I wrote that I keep on my USB utility drive... GREAT for citrix servers :)
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.
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:
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.
The best safe way to clean up the temp directories is with cleanmgr. The downside is that you have to either run sageset on each machine or (and far easier) is to build an ADM file with the registry entries and use group policy to push them out to client desktops. the registry key to look at is: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
See also How to Automate the Disk Cleanup Tool in Windows XP
You're all making it way too hard. This is Windows XP he's asking about. Here's some useful ones:
Why not just use Ccleaner in your script, since it already has all the functions you need. And then use Psexec to push your script, which calls Ccleaner, and then delete Ccleaner when done. You can add a .ini file that contains all of the settings you want in Ccleaner. This way, u don't have to reinvent the wheel. It's all about Re-Use.
I'd rather delete the files than the folder on XP; because we have an application that stores LOTS of temp-files and leave them there. I do want to delete the files in all user profiles.