A linha é a seguinte:
Get-ChildItem "D:\" -recurse | Select-Object Name, LastWriteTime,
@{Name="Age";Expression={ (((Get-Date) - $_.LastWriteTime).Days) }},
Length | where-object {$_.Age -ge 760} | where { $_.Length -ne $NULL } |
Out-GridView
Ah que bom Marcelão, mas e aí!? Bom, e aí nobre amigo o resultado é lindo, veja:
Essa maravilha trás o nome do arquivo, a data da última vez que
foi escrito, a idade (em dias) da última vez que foi escrito, o tamanho (em
Bytes), filtra por arquivos iguais ou maiores que 760 dias (o que eu precisava na ocasião) e descarta arquivos
que tem o atribuído Length nulo, ou seja, pastas. Por último e não menos importante ele abre uma view gráfica que imprime o output online. Não é emocionante? hahaha... Sem exageros, ok? Isso aqui não é confeitaria!
Agora vejam alguns atributos interessantes que você pode trocar:
LastWriteTime = Última vez que o arquivo foi escrito, poderia a data de quando foi criado por exemplo (CreationTime).
$.Age –ge 760 = Pode alterar a range de tempo que considerar
como resultado de filtro, para isso basta alterar o número decimal. Caso queira mudar o critério sugiro que pesquise mas pega essa dica: -lt (Menor que); -le (Menor ou igual); -gt (Maior que); -eq (Igual); -ne (Não igual).
Out | GridView = Imprime o resultado em ferramenta gráfica,
pode alternar para exportar direto para um arquivo HTML ou CSV. Essa é fácil né? Export-CSV "nomedoarquivo.csv".
Depois o que fiz foi abrir o resultado em um Excel, formatar uma tabela e aplicar a soma no final. Colhi os resultados e corri para o abraço!
Ah, o resultado... Como ele vem em Bytes eu usei um site para converter e Gigabytes... Finish Him!!!
É isso meu povo, até a próxima psicografia...
Abraço!