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 nols
objeto pipeepcsv
=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 ';'
--Delimiter
char 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:
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.