Como limpar logs de datas específicas via Powershell

Talvez um comando conhecido por poucos, porém de grande valia para nos administradores de sistemas.

Quem nunca precisou limpar lotes de arquivos com restrição de datas tanto dos mais recentes para os mais antigos(inverso) ou com um data especifica. Até mesmo aqueles arquivos de logs tanto do Windows ou de alguma outra aplicação específica, enfim usando o comando “FORFILES” podemos adicionar vários critérios para sua execução.

Leia mais:

Consultando Administradores locais em Computadores Windows no Domínio utilizando PsExec e Batch
Como auditar documentos compartilhados no Microsoft Onedrive For Business
Como preparar um Laboratório de Microsoft Defender para o Ponto de Extremidade
Bug das Impressoras no Windows 10 piora após nova atualização
Como utilizar o Windows Hello for Business em ambientes 100 % Nuvem

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]

Parâmetros

Variáveis

Cenário

Vamos imaginar que temos um cenário com vários arquivos de log, dentre eles precisamos excluir somente os arquivos de logs anteriores ao ano de 2021.

Exemplo:

Na pasta atual efetuei um export para verificarmos a quantidade de arquivos .log que temos do ano de 2021 e 2020, para posteriormente efetuar as validações quanto a efetividade do comando.

Arquivos *.log ano 2020 = 108
Arquivos *.log ano 2021 = 177
Outros arquivos (txt, png, docx) = 64

Seguem os comandos caso necessitem para ajuda:

forfiles /p E:\teste\ /s /m *.log /d -01/01/2021 /c "cmd /c echo @file @fdate" >> E:\teste\2020.TXT

forfiles /p E:\teste\ /s /m *.log /d +31/12/2020 /c "cmd /c echo @file @fdate" >> E:\teste\2021.TXT

forfiles = chamando a aplicação

/p E:\teste\ /s = escolhendo o caminho e caso houvesse diretório

/m *.log = escolhendo tipo de arquivo

/d -01/01/2021 = determinando a data

/c “cmd /c echo @file @fdate” = executar o comando desejado

>> E:\teste\2020.TXT = caminho do export

Observação: na data reparem que tivemos + -, ambos fazem trabalho diferentes. (-)anterior a data (+) posterior a data.

Vamos a execução e validação

forfiles /p E:\teste\ /m *.log /d -01/01/2021 /c "cmd /c del /f /q @path"

Após o comando podemos validar que foram removidos apenas os arquivos anteriores a 2021 com a extensão *.log.

A pasta continha um total de 349 arquivos, sendo 108 com a data de anterior a 2021 e com suas extensões *.log, logo os 349 – 108 = 241 restantes. Entanto o comando funciona perfeitamente.

Uma utilização muito interessante seria para a criação de schedules para limpeza de arquivos de log’s, porém vai da necessidade de cada utilização, esse comando está disponível nas mais atuais versões do Windows, exceto as antigas versões Windows XP e 2000.

Por hoje é apenas uma dica que gostaria de deixar para todos, espero que seja de um bom aproveito de todos!

Referência: Mateus Coimbra

Este artigo foi útil?

Para manter um padrão de qualidade para vocês, investimos em um ótimo plano de hospedagem, CDN Pago, Plugins de Otimização para o Site, etc…

Ajude-nos a manter o projeto ativo! 

Acompanhe as novidades em tempo real. Siga nosso perfil no Instagram..

Felipe Santos
Felipe Santos é Arquiteto de Cloud e Segurança, com vivência em Administração de Ambientes Windows Server, Cluster, Storages, Backups Veeam e Office 365.
pt_BRPortuguese

ATÉ 90% DE DESCONTO

DECOLE SUA CARREIRA!!

Quer dar um upgrade na sua carreira? 

Invista em você e saia na frente! Conquiste aquele emprego dos sonhos em 2022!