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

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

Quero listar 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. Posso então abrir o arquivo dentro do Excel.

Atualmente 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?

Responder1

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 de máscara/tubo em cmd, |- objeto de tubo
  • $_- variável para o objeto atual no pipeline; amostra:

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

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

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

  • select- selecione propriedades no lsobjeto pipe

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

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

resultado: insira a descrição da imagem aqui

Responder2

O texto acima tem problemas com espaços nos nomes de diretórios que encontrei. Este 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 de usar o Delimitador ";" é confuso para o Excel e mudar para "," significa que o Excel pode abrir o CSV exportado sem qualquer manipulação adicional dos dados.

informação relacionada