
21/06/2010, 18:03
|
| | Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 16 años, 5 meses Puntos: 0 | |
crear un script para borrar temporales joomla Buenas gente,
soy nuevo x aki,primero felicitar x todo este gran trabajo y ayuda q dais
en segundo lugar no se si esto esta bien aki,pero tiene relacion con joomla, asi q espero que me puedan ayudar
el tema es que quiero crear un script para que me borre los archivos de la carpeta TEMPS que se guardan en mi servidor, dnd tengo alojado joomla
no tengo ni idea de scripts y buscando por internet e encontrado lo siguiente...pero no se si sta bien o mal
Código:
Option Explicit
Dim fso,ws,Title
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
Title = "Eliminar archivos temporales"
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 "Condición insegura detectada. %TEMP% " &_
"Variable no encontrada.",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 Drv.DriveType = 2 or Drv.DriveType = 3 Then _
UnSafe = UnSafe & Drv.RootFolder & "|"
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 "Condición insegura detectada. %TEMP% " &_
"Variable establecida a " & 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 = " de espacio libre recuperado."
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 = " de espacio recuperado hasta la fecha."
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 = " archivo encontrado, " _
Else strF = " archivos encontrados, "
If dcnt = 1 Then strD = " archivo borrado." _
Else strD = " archivos borrados."
Set TmpClnLog = Nothing
End Sub
Sub Cleanup
Set fso = Nothing
Set ws = Nothing
Set Fldr = Nothing
End Sub
aber si me podeis ayudar cone sto o sino crear otro nuevo...
gracias |