PowerShell - Jogar todos os arquivos de uma hierárquia de diretórios em um csv.

Tava precisando "planilhar" todos os arquivos do diretório de clientes do nosso servidor web. Sei que existem muitos programas bom para fazer isso mas nesse caso o servidor era de produção e seria melhor não instalar nem rodar nenhum programa de fora nele.

Não tenho intimidade com scripts bats nem com powershell mas sabia que em algum desses dois estaria a minha solução. Minha pesquisa me levou até essa solução: http://stackoverflow.com/questions/13345066/windows-how-to-list-files-recursively-with-size-and-last-access-date que adaptada a minha necessidade terminou assim:

get-childitem . -rec | where {!$_.PSIsContainer} | select-object Attributes, BaseName, CreationTime, CreationTimeUtc, Directory, DirectoryName, Exists, Extension, FullName, IsReadOnly, LastAccessTime, LastAccessTimeUtc, LastWriteTime, LastWriteTimeUtc, Length, Mode, Name  | export-csv -notypeinformation -delimiter ';' -path file.csv
 Com esse csv em mãos ficou molezinha dar carga em uma tabela no SQL SERVER para que quem demandou realizasse consultas mais "cabeludas".

Observe que o . (ponto) após get-childitem indica que a operação será realizada sobre o diretório corrente exibido no prompt do powershell você pode substituí-lo pelo diretório de sua necessidade ex.: D:\Temp. Outro trecho que gostaria de comentar é o where {!$_.PSIsContainer} , ele limita a varredura a somente entradas tipo arquivo, ou seja, pastas vazias não aparecerão no seu relatório final.

Comentários

Postagens mais visitadas deste blog

Curtir publicações automaticamente no Facebook. Por que isso não é uma boa idéia?