A listagem de diretórios inclui data de modificação, tamanho do arquivo em arquivo de texto / arquivo excel

1

Eu quero listar os diretórios, subdiretórios e arquivos de uma unidade inteira (Z :) em um único arquivo de texto com todas as datas e tamanhos de arquivo. Eu posso então abrir o arquivo dentro do Excel.

No momento, estou usando o seguinte comando:

dir z:\ /s /o:gne >text.txt

Existe alguma maneira de obter uma saída semelhante à que você normalmente obtém com o comando tree, com todos os arquivos e subdiretórios empilhados em um e não listados separadamente?

O que devo fazer ou inserir se quiser remover outras informações desnecessárias, como a hora?

    
por Kurisuchin 27.01.2015 / 02:39

2 respostas

5
powershell ls -r -fo Z:\ ^|?{!$_.PSIsContainer}^|Select DirectoryName,Name,BaseName,Extension,Length,CreationTime,LastAccessTime,LastWriteTime ^|epcsv Z:\excel.csv -En  UTF8 -NoType -Delim ';'
  • ^| - ^ - símbolo de transportador / tubo de máscara em cmd, | - objeto de tubo
  • $_ - variável para o objeto atual na linha de tubulação; amostra:

    powershell 'a','B','c','d','F' ^|%{if($_.toLower() -gt 'b'){write $_}}
    
  • ? = where - a verificação não é o diretório ?{!$_.PSIsContainer} cycle {}

  • ls -r - obtém todos os arquivos em / e todos os subdiretórios e diretório atual

  • -fo = -force - adicionar à lista arquivo de arquivos oculto, de sistema e somente leitura
  • 'Z: \' - caminho do diretório, se usar 'Z:' - defina o diretório atual em Z: cd.

  • select - selecione as propriedades no objeto% pipe_de% pipe

  • ls = epcsv - Exporte um objeto do PowerShell para o arquivo de valores separados (CSV).

  • Export-Csv = -En - string de codificação    A codificação do arquivo CSV exportado.    Os valores válidos são: Unicode, UTF7, UTF8, ASCII, UTF32,    BigEndian unicode, Default e OEM. O padrão é ASCII.
  • -Encoding = -NoType - omite as informações de tipo do arquivo CSV.
  • -NoTypeInformation - -Delim ';' char    Um delimitador para separar os valores da propriedade.    O padrão é uma vírgula (,). Digite um caractere, como dois pontos (:).    Para especificar um ponto e vírgula (;), coloque-o entre aspas.

resultado:

    
por 27.01.2015 / 04:34
1

O problema acima tem problemas com espaços nos nomes de diretório que encontrei, esse comando básico do powershell funciona melhor na minha experiência:

Get-ChildItem -r "Z:\" | select DirectoryName,Name,Extension,CreationTime,AccessTime,LastWriteTime | Export-Csv -Append -Path "Z:\export.csv" -En UTF8 -NoType -Delim ','

Além disso, usando o Delimitador ";" é confuso para o Excel e alterá-lo para "," significa que o Excel pode abrir o CSV exportado sem qualquer manipulação adicional dos dados.

    
por 19.07.2018 / 12:10