script vb para deletar arquivos antigos e pastas

Scripts diversos para automatizar tarefas em servidores ou auxilio com tarefas administrativas.
Wando
Newbie
Newbie
Mensagens: 1
Registrado em: 23 Jul 2024 21:21
Status: Offline

script vb para deletar arquivos antigos e pastas

Mensagem por Wando »

Gostaria de ver se alguém poderia me ajudar a corrigir meu script em vb, ele está funcionando deletando os arquivos e pastas, porém não está registrando no log de deletados e erros, como faço para que o script registre as informações no log. segue abaixo o script.
Option Explicit

Dim pasta_alvo, dias_para_deletar, caminho_logs, log_erros, log_deletados
Dim objFSO, objFolder, dateThreshold, logStream, errorStream

' Configurações
pasta_alvo = "E:\Teste123\PastaX" ' Substitua pelo caminho da pasta que deseja limpar
dias_para_deletar = 01 ' Número de dias para manter os arquivos antes de excluí-los

' Caminho dos logs
caminho_logs = "C:\Log\Logs" ' Substitua pelo caminho onde deseja armazenar os logs
log_erros = caminho_logs & "\erros.log"
log_deletados = caminho_logs & "\deletados.log"

' Cria o diretório de logs se não existir
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(caminho_logs) Then
    objFSO.CreateFolder(caminho_logs)
End If

' Verifica se a pasta existe
If Not objFSO.FolderExists(pasta_alvo) Then
    WScript.Quit 1
End If

' Define a data limite para exclusão
dateThreshold = DateAdd("d", -dias_para_deletar, Now)

' Exclui arquivos mais antigos que o limite de dias
Set objFolder = objFSO.GetFolder(pasta_alvo)
Set logStream = objFSO.OpenTextFile(log_deletados, 8, True)
Set errorStream = objFSO.OpenTextFile(log_erros, 8, True)

Sub DeleteOldFiles(folder)
    Dim file
    For Each file In folder.Files
        If file.DateLastModified < dateThreshold Then
            On Error Resume Next
            file.Delete True
            If Err.Number = 0 Then
                logStream.WriteLine "Arquivo deletado: " & file.Path
            Else
                errorStream.WriteLine "Erro ao excluir arquivo: " & file.Path & " - " & Err.Description
                Err.Clear
            End If
            On Error GoTo 0
        End If
    Next
End Sub

Sub DeleteOldFolders(folder)
    Dim subFolder
    For Each subFolder In folder.SubFolders
        DeleteOldFolders subFolder
        If subFolder.DateLastModified < dateThreshold Then
            On Error Resume Next
            subFolder.Delete True
            If Err.Number = 0 Then
                logStream.WriteLine "Pasta excluída: " & subFolder.Path
            Else
                errorStream.WriteLine "Erro ao excluir pasta: " & subFolder.Path & " - " & Err.Description
                Err.Clear
            End If
            On Error GoTo 0
        End If
    Next
End Sub

DeleteOldFiles objFolder
DeleteOldFolders objFolder

logStream.Close
errorStream.Close


Voltar para “Scripts”