anasabom
رقم العضوية : 6 عدد المساهمات : 245 نقاط : 7617 السٌّمعَة : 8 تاريخ التسجيل : 24/11/2010 الموقع : الرياض لائحة الصور : بالشكر تدوم النعم من الله عز وجل الدولة : مهنتي :
| موضوع: DeleteTempFiles الخميس 02 ديسمبر 2010, 3:33 pm | |
|
'DeleteTempFiles.vbs - A utility to clean Win9x temp directory 'at boot. Put a shortcut to this file in Startup directory. '© Anas Mawe - [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]- rev 26 May 2002
'Original author - Michael Harris - posted to 'microsoft.public.scripting.vbs newsgroup on 28 Aug 1999.
'Modifications by Anas Mawe: Added safety check for dangerous 'temp folder settting. Revised summary popup to include 'savings for this run and cumulative savings to date.
'rev 26 May 2002 to add error trap for unformatted partition
Option Explicit
Dim fso,ws,Title Set fso = CreateObject("Scripting.FileSystemObject") Set ws = WScript.CreateObject("WScript.Shell") Title = "Temp File Cleaner"
Dim TmpDir : TmpDir = ws.Environment("Process")("Temp")
ChkTmpSafe
Dim OldTmpSize : OldTmpSize = fso.GetFolder(TmpDir).size
Dim arFiles(),cnt,dcnt,Fldr,SubFldr,File cnt = -1 dcnt = 0 DelTmpFiles TmpDir
DelEmptyFldrs TmpDir
Dim strF,strD,RptSize,TotSave CalcSave
If dcnt >= 1 Then ws.Popup cnt & strF & dcnt & _ strD & vbCRLF & vbCRLF & RptSize & vbCRLF & _ vbCRLF & TotSave,60,Title
Cleanup
Sub ChkTmpSafe Dim Drv,Unsafe,WinDir,ComDir,PgmDir,SysDir,UnsafeDir If TmpDir = "" Then ws.Popup "Unsafe condition detected. %TEMP% " &_ "Variable is not set.",60,Title,16 Cleanup WScript.Quit End If If Not fso.FolderExists(TmpDir) Then fso.CreateFolder(TmpDir) Cleanup WScript.Quit End If For Each Drv In fso.Drives 'If a drive or partition is not formatted, an error occurs On Error Resume Next If Drv.DriveType = 2 or Drv.DriveType = 3 Then _ UnSafe = UnSafe & Drv.RootFolder & "|" On Error GoTo 0 Next Unsafe = Unsafe & fso.GetSpecialFolder(0) & "|" Unsafe = Unsafe & fso.GetSpecialFolder(0) & "\Command|" Unsafe = Unsafe & ws.RegRead("HKLM\Software\Microsoft" _ & "\Windows\CurrentVersion\ProgramFilesPath") & "|" Unsafe = Unsafe & fso.getspecialfolder(1) Unsafe = Split(Unsafe,"|",-1,1) For Each UnsafeDir In Unsafe If UCase(UnsafeDir) = UCase(TmpDir) Or _ UCase(UnsafeDir) & "" = UCase(TmpDir) Or _ UCase(UnsafeDir) = UCase(TmpDir) & "" Then ws.Popup "Unsafe condition detected. %TEMP% " &_ "Variable is set to " & TmpDir,60,Title,16 Cleanup WScript.Quit End If Next End Sub
Sub DelTmpFiles(FldrSpec) Set Fldr = fso.GetFolder(FldrSpec) For Each File In Fldr.Files cnt = cnt + 1 Redim Preserve arFiles(cnt) Set arFiles(cnt) = File Next For Each SubFldr in Fldr.SubFolders DelTmpFiles SubFldr Next For Each file in arFiles On Error Resume Next file.Delete True If Err.Number = 0 Then dcnt = dcnt + 1 Err.Clear Next End Sub
Sub DelEmptyFldrs(FldrSpec) Set Fldr = fso.GetFolder(FldrSpec) For Each SubFldr in Fldr.SubFolders DelEmptyFldrs SubFldr Next On Error Resume Next If UCase(Fldr.Path) <> UCase(TmpDir) Then If Fldr.Files.Count = 0 Then If Fldr.SubFolders.Count = 0 Then Fldr.Delete End If End If End If If Err.Number = 76 Then Err.Clear On Error GoTo 0 DelEmptyFldrs(TmpDir) End If End Sub
Sub CalcSave Dim NewTmpSize,SaveSize,s1,s2 Dim TmpClnLog,OldSave,HideLog,Log NewTmpSize = fso.GetFolder(TmpDir).size SaveSize = OldTmpSize - NewTmpSize s1 = " free space reclaimed." If SaveSize < 1024 Then RptSize = SaveSize & " bytes" & s1 ElseIf SaveSize < 1048576 Then RptSize = Round(SaveSize / 1024) & " KB" & s1 Else RptSize = Round(SaveSize / 1048576) & " MB" & s1 End If Log = fso.GetSpecialFolder(0) & "\TempClean.Log" If Not fso.FileExists(Log) Then fso.CreateTextFile(Log) If fso.GetFile(Log).Size = 0 Then Set TmpClnLog = fso.OpenTextFile(Log,8,True) TmpClnLog.WriteBlankLines(1) End If Set TmpClnLog = fso.OpenTextFile(Log,1) OldSave = TmpClnLog.ReadLine If Not IsNumeric(OldSave) Then OldSave = 0 TotSave = OldSave + SaveSize Set TmpClnLog = fso.OpenTextFile(Log,2) TmpClnLog.WriteLine TotSave TmpClnLog.Close s2 = " reclaimed to date." If TotSave < 1024 Then TotSave = TotSave & " bytes" & s2 ElseIf TotSave < 1048576 Then TotSave = Round(TotSave / 1024) & " KB" & s2 Else TotSave = Round(TotSave / 1048576) & " MB" & s2 End If cnt = cnt + 1 If cnt = 1 Then strF = " file found, " _ Else strF = " files found, " If dcnt = 1 Then strD = " file deleted." _ Else strD = " files deleted." Set TmpClnLog = Nothing End Sub
Sub Cleanup Set fso = Nothing Set ws = Nothing Set Fldr = Nothing End Sub | |
|
anasabom
رقم العضوية : 6 عدد المساهمات : 245 نقاط : 7617 السٌّمعَة : 8 تاريخ التسجيل : 24/11/2010 الموقع : الرياض لائحة الصور : بالشكر تدوم النعم من الله عز وجل الدولة : مهنتي :
| موضوع: طريقة عمل الملف السابق الخميس 02 ديسمبر 2010, 3:35 pm | |
| كالعادة وبكل بساطة تنشئ الملف TXT ثم تقوم بتحويل اللاحقة هذه المرة الى VBC
وتشغل الملف فقط لا غير .... أبومالك | |
|