Option Explicit
DIM g_objWshShell, g_objFSO,
g_sLogFile, g_objWshNetwork,
g_sScriptName, g_sComputerName,
g_sUserName Dim g_sVer, g_objLogFile,
g_sLogDir
'Setup main variables and objects Set
g_objWshShell =
WScript.CreateObject("WScript.Shell")
'Create a Shell Object Set g_objFSO =
CreateObject("Scripting.FileSystemObject")
'create a File System Object Set
g_objWshNetwork =
WScript.CreateObject("WScript.Network")
'Create Network Object g_sComputerName
= g_objWshNetwork.Computername 'Gets machine Computer name g_sUserName =
g_objWshNetwork.UserName 'Gets
logged-on username
g_sScriptName=UCase(WScript.ScriptName) '
*** Name of the script
' * START LogFile Information - use
Delete or Append info below; don't use
both * Const FORREADING = 1,
FORWRITING = 2, FORAPPENDING = 8
'Setup constants for writing,
appending, etc g_sLogDir = "C:\TEMP"
If Not
(g_objFSO.FolderExists(g_sLogDir))
Then g_objFSO.CreateFolder(g_sLogDir)
End If g_sLogFile = g_sLogDir & "\" &
Left(g_sScriptName,len(g_sScriptName)
- 3) & "LOG" 'Makes log file the SCRIPTNAME.Log g_sVer = "1.0"
'To delete a logfile and create a new
one each time script is ran If
g_objFSO.FileExists(g_sLogFile) Then
g_objFSO.DeleteFile(g_sLogFile)
'Delete logfile if it exists. End If
Set g_objLogFile =
g_objFSO.CreateTextFile(g_sLogFile,
FORWRITING) 'Setup the logfile for
writing
Call Main() Call ExitScript()
'Start main script HERE *** Sub Main()
Dim objRecycleBin, objFolderItems,
objItem, strSpecialFolderName
strSpecialFolderName = "Recycle Bin"
'Call WriteLine("Starting " &
g_sScriptName & " at " & Date & " " &
Time, g_objLogFile) Set objRecycleBin
= GetSpecialFolderObject(strSpecialFolderName) 'Get
Special Folder based upon input name
Set objFolderItems =
objRecycleBin.Items() 'Get items
within Recycle Bin For Each objItem
In objFolderItems 'Delete all
items within Special Folder If
(objItem.Type = "File Folder")
Then 'Check for file type
g_objFSO.DeleteFolder(objItem.Path) 'Delete
Folders Else
g_objFSO.DeleteFile(objItem.Path) 'Delete
Files End If WScript.Echo "Deleted
" & objItem.Name Next End Sub
'----*- Start Subroutines here
----*- 'Returns SpecialFolder based upon name of folder Function
GetSpecialFolderObject(NameOfFolder)
Dim objShellApp, i, objSpecialFolder
Set objShellApp =
CreateObject("Shell.Application") On
Error Resume Next For i=0 To 40 '40
is highest value for special folders
Set objSpecialFolder =
objShellApp.NameSpace(i) If
(StrComp(objSpecialFolder.Title,NameOfFolder,vbTextCompare)=0)
Then Set GetSpecialFolderObject =
objSpecialFolder Exit For End If
Next Err.Clear End Function
'Closes logfile and exits script Sub
ExitScript() 'Call WriteLine(Date & "
" & Time & "; Completed " &
g_sScriptName, g_objLogFile) If
IsObject(g_objLogFile) Then
g_objLogFile.Close End If Wscript.Quit End Sub
Sub EndOnError(sErrorString)
WScript.Echo sErrorString & vbcrlf &
"Check " & chr(34) & g_sLogFile &
Chr(34) & " for details" Call
WriteLine (sErrorString, g_objLogFile)
WScript.Quit() End Sub
'Shows usage if input is wrong sub
ShowUsage() WScript.Echo
g_sScriptName & " v" & g_sVer & "
Empties Recycle Bin for logged on
user" & vbcrlf _ & vbcrlf & "USAGE:
[CSCRIPT] " & g_sScriptName
WScript.Quit end sub
'Writes to log Sub WriteLine(ByVal
strMessage, ByVal objFile)
On Error Resume Next
If IsObject(objFile) then 'objFile should be a file object
objFile.WriteLine strMessage
Else
Call Wscript.Echo( strMessage )
End If End Sub
'----*- End Subroutines here
----*- '*** End