none
Script VBS para apagar arquivos RRS feed

  • Pergunta

  • Ola Pessoal,

    Consegui um na internet um ótimo script em vbs que atende quase tudo que preciso. Ele apaga tudo da pasta e gera log. Eu preciso dar uma "incrementada" nele dizendo que é para apagar tudo mas só o que for maior que 7 dias. Poderiam me ajudar?

    Segue o script;

    Option Explicit
    
    Dim Path, FileLog, Arquivo, ArquivoSize
    Dim ObjFSO, Folder, MyFiles, MySubFolders, MyFolder
    Dim ObjFileRead, ObjFileWrite, ObjFileAppending
    Dim NomeFileDeleted, NomeFolderDeleted
    Dim ActionDel, i
    On error resume next
    Path = "C:\test" 'Pasta Raiz onde for desejado apagar os arquivos e subpastas
    FileLog = "logfile.txt"  'Nome do logfile
    ActionDel = "no"
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
    
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    
    VerifySizeLog FileLog
    Set Folder = ObjFSO.GetFolder(Path)
    Set MyFiles = Folder.files
    Set MySubFolders = Folder.SubFolders
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)
    'Set ObjFileWrite = ObjFSO.opentextfile(FileLog, ForWriting, True)
    
    If Not ObjFSO.FolderExists(Path) Then
      WriteLog Path & " - não é uma pasta válida(A pasta não existe)."
     wscript.echo FileLog
      WScript.Quit
    End If
    i=0
    IF MyFiles.Count <> 0 Then
     For Each MyFiles in Folder.Files
      NomeFileDeleted = MyFiles.Name
     
      MyFiles.Delete
      if Err.number <> 0 then
       WriteLog Err.Description&". !!! Erro ao tentar deletar o arquivo "& Path &"\"&NomeFileDeleted
       Err.Clear
       else
        WriteLog Path &"\"&NomeFileDeleted &" - Arquivo deletado em "& now()
        i=i+1
      end if
      ActionDel = "yes"
     Next
    end if
    IF MySubFolders.Count <> 0 Then
     For each MyFolder in MySubFolders
      NomeFolderDeleted = MyFolder.Name
      MyFolder.delete
      
      if Err.number <> 0 then
       WriteLog Err.Description&". Erro ao tentar deletar a pasta "& Path &"\"&NomeFolderDeleted
       Err.Clear
       else
        WriteLog Path &"\"&NomeFolderDeleted &" - PASTA deletada em "& now()
        i=i+1
      end if
      ActionDel = "yes"
     Next
    end if
      
    if ActionDel = "yes" then
     WriteLog "----------------------------------------FIM----------------------------------------------------"
     WriteLog "----------------------------TOTAL DE "& i &" OBJETOS DELETADOS---------------------------------"
    end if
    
    Function WriteLog (Text)
     ObjFileAppending.WriteLine Text
    End Function
    Function VerifySizeLog(NameFile)
     Set ObjFSO = CreateObject("Scripting.FileSystemObject")
     Set ObjFileRead = ObjFSO.opentextfile(NameFile, ForReading, True)
     Set Arquivo = ObjFSO.GetFile(NameFile)
     ArquivoSize = Arquivo.size 
     'wscript.echo ArquivoSize
     if  ArquivoSize >= 1240000 then
      ObjFileRead.close
      Arquivo.name = "LOG FECHADO EM "& Replace(FormatDateTime(now,2),"/","-")&".txt"
      
     elseif ArquivoSize <= 1000024 then
      FileLog = NameFile
     end if
    End Function

    Valeu!!!

    quarta-feira, 24 de outubro de 2012 17:11

Respostas

Todas as Respostas