#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







DEIXE UM COMENTÁRIO