#Powershell: localizando arquivos com mais de 3 meses sem alteração

Tenho uma situação interessante em alguns clientes que é precisar deletar arquivos quando estes completam 3 meses de idade, ou seja, quando não precisamos mais deles e necessitamos fazer a faxina para liberar espaço em disco.

Um bom exemplo disso são arquivos de backup ou do circuito interno de TV, pois achamos que 3 meses são o suficiente para nos dar a segurança.

Seguem os exemplos:

Exemplo 1:  

em um linha

dir path\folder -Recurse -Force -ErrorAction SilentlyContinue | ` ?{$_.lastwritetime -lt (Get-Date).AddMonths(-3)} | Measure-Object -Property Length -Sum

 

Exemplo 2: em duas linhas

linha 1: $date = (Get-Date).AddMonths(-3)
linha 2: dir path\folder -Recurse | ?{$_.lastwritetime -lt $date -and !$_.PsIsContainer} | Measure-Object -Property Length -Sum

O resultado traz o tamanho dos arquivos em bytes, para convertê-los em gigabytes, use dessa forma no exemplo de 1 inha :

$files = dir path\folder -Recurse -Force -ErrorAction SilentlyContinue | `
?{$_.lastwritetime -lt (Get-Date).AddMonths(-3)} | Measure-Object -Property Length -Sum
($files.sum / 1gb).ToString(“F02″)

* Obs: F02 determina quantas casas decimais após a vírgula, nesse caso duas, se fossem 3 seria F03, e assim sucessivamente.

É isso aí, espero ter ajudado.

Abraço

Post to Twitter Enviar para o Twitter

Publicado por: tecdom em January 26th, 2010 | Categoria Uncategorized



DEIXE UM COMENTÁRIO

rss feed