'====================== ' Based on DeleteTempFilesAndSendEmail.vbs by Tom Andre ' ' Written by Nilpo for DevHardware Forums (http://forums.devhardware.com) ' ' email the author nilpo (at) nilpo (dot) com ' '====================== ' Environment-specific Variables Option Explicit Const logfile = "C:\deleteTempFiles.txt" Dim colItems Dim DocsFolder Dim FolderSet Dim fs Dim objWMIService Dim SubFolder Dim SubsubFolder Dim SubfolderSet Dim objItem Dim objShell Dim oLogFile Dim UserFolder Dim UserFolderPath Dim WinTempFolder Dim WinHistFolder Dim WinHistIEFolder Dim WinContFolder Dim WinProgFolder Dim MyDirectory Dim WinContIEFolder Set fs = CreateObject("Scripting.FileSystemObject") Set oLogFile = fs.OpenTextFile(logfile, 2, True) set fs = CreateObject("Scripting.FileSystemObject") MyDirectory = "C:\Documents and Settings\" If fs.FolderExists(MyDirectory) Then Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Local Settings\Temp\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Local Settings\Temporary Internet Files\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Local Settings\Temporary Internet Files\Content.IE5\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next End If MyDirectory = "C:\Windows\Profiles\" If fs.FolderExists(MyDirectory) Then Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Temp\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Temporary Internet Files\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next Set DocsFolder = fs.GetFolder(MyDirectory) set FolderSet = DocsFolder.Subfolders For Each Subfolder In FolderSet On Error Resume Next Set UserFolder = fs.GetFolder(Subfolder+"\Temporary Internet Files\Content.IE5\") If err.Number <>76 Then Err.Clear UserFolderPath = DocsFolder.name+"\"+ Subfolder.name+"\"+ UserFolder.name + "\" DeleteFiles UserFolder, UserFolderPath Set SubfolderSet = UserFolder.Subfolders DeleteFolders SubfolderSet, UserFolderPath End If 'On Error GoTo 0 Next End If MyDirectory = "C:\Windows\Temp\" If fs.FolderExists(MyDirectory) Then Set WinTempFolder = fs.GetFolder(MyDirectory) DeleteFiles WinTempFolder, MyDirectory Set SubfolderSet = WinTempFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If MyDirectory = "C:\Windows\History\" If fs.FolderExists(MyDirectory) Then Set WinHistFolder = fs.GetFolder(MyDirectory) DeleteFiles WinHistFolder, MyDirectory Set SubfolderSet = WinHistFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If MyDirectory = "C:\Windows\History\History.IE5\" If fs.FolderExists(MyDirectory) Then Set WinHistFolder = fs.GetFolder(MyDirectory) DeleteFiles WinHistFolder, MyDirectory Set SubfolderSet = WinHistFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If MyDirectory = "C:\Windows\Downloaded Program Files\" If fs.FolderExists(MyDirectory) Then Set WinProgFolder = fs.GetFolder(MyDirectory) DeleteFiles WinProgFolder, MyDirectory Set SubfolderSet = WinProgFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If MyDirectory = "C:\Windows\Temporary Internet Files\" If fs.FolderExists(MyDirectory) Then Set WinContFolder = fs.GetFolder(MyDirectory) DeleteFiles WinContFolder, MyDirectory Set SubfolderSet = WinContFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If MyDirectory = "C:\Windows\Temporary Internet Files\Content.IE5\" If fs.FolderExists(MyDirectory) Then Set WinContIEFolder = fs.GetFolder(MyDirectory) DeleteFiles WinContIEFolder, MyDirectory Set SubfolderSet = WinContIEFolder.Subfolders DeleteFolders SubfolderSet, MyDirectory End If oLogFile.close '=============== ' Delete files within the specified folder '=============== Sub DeleteFiles(TargetFolder, TargetPath) Dim File Dim retval On Error Resume Next For Each File In TargetFolder.files retval = file.delete If Err.Number = 0 Then oLogFile.WriteLine "Deleting file " + TargetPath + file.name Else oLogFile.WriteLine "Could not delete file " + TargetPath + file.name + "--"+Err.Description End If Next On Error goto 0 End Sub '=============== ' Delete subfolders within the specified folder '=============== Sub DeleteFolders (TargetFolder, TargetPath) Dim retval On Error Resume Next For Each subSubfolder In TargetFolder retval = subSubfolder.delete If Err.Number =0 Then oLogFile.WriteLine "Deleting Folder " + TargetPath + subSubfolder.name Else oLogFile.WriteLine "Could not delete folder " + TargetPath + subSubfolder.name +"--"+Err.Description End If Next On Error goto 0 End Sub '=============== ' Empty Recycle Bin '=============== SET objShell = CreateObject("Shell.Application") objShell.Namespace(10).Items.Item._ InvokeVerb("Empty Recycle &Bin") MSgBox "System Cleanup Complete! -- Script provided by Nilpo"