Quiero enumerar los directorios, subdirectorios y archivos de una unidad completa (Z :) en un solo archivo de texto con todas las fechas y tamaños de archivo. Luego puedo abrir el archivo dentro de Excel.
Actualmente estoy usando el siguiente comando:
dir z:\ /s /o:gne >text.txt
¿Hay alguna manera de obtener un resultado similar al que normalmente se obtiene con el comando de árbol, con todos los archivos y subdirectorios apilados en uno y no listados por separado?
¿Qué tengo que hacer o ingresar si quiero eliminar otra información innecesaria como la hora?
Respuesta1
powershell ls -r -fo Z:\ ^|?{!$_.PSIsContainer}^|Select DirectoryName,Name,BaseName,Extension,Length,CreationTime,LastAccessTime,LastWriteTime ^|epcsv Z:\excel.csv -En UTF8 -NoType -Delim ';'
^|
-^
- máscara transportador/símbolo de tubería en cmd,|
- objeto de tubería$_
- variable para el objeto actual en la tubería; muestra:powershell 'a','B','c','d','F' ^|%{if($_.toLower() -gt 'b'){write $_}}
?
=where
- la verificación no es?{!$_.PSIsContainer}
un ciclo de directorio{}
ls -r
- obtener todos los archivos en/y todos los subdirectorios y el directorio actual-fo
=-force
- agregar a la lista archivos de atributos ocultos, del sistema y de solo lectura'Z:\' - ruta del directorio, si usa 'Z:' - establezca el directorio actual en Z: cd.
select
- seleccionar propiedades en ells
objeto de tuberíaepcsv
=Export-Csv
- Exportar un objeto de PowerShell a un archivo de valores separados (CSV).-En
=-Encoding
- Cadena de codificación La codificación del archivo CSV exportado. Los valores válidos son: Unicode, UTF7, UTF8, ASCII, UTF32, BigEndian Unicode, Predeterminado y OEM. El valor predeterminado es ASCII.-NoType
=-NoTypeInformation
- Omitir la información de tipo del archivo CSV.-Delim ';'
--Delimiter
char Un delimitador para separar los valores de propiedad. El valor predeterminado es una coma (,). Introduzca un carácter, como dos puntos (:). Para especificar un punto y coma (;), escríbalo entre comillas.
resultado:
Respuesta2
Lo anterior tiene problemas con los espacios en los nombres de directorio que encontré, este comando básico de PowerShell funciona mejor en mi experiencia:
Get-ChildItem -r "Z:\" | select DirectoryName,Name,Extension,CreationTime,AccessTime,LastWriteTime | Export-Csv -Append -Path "Z:\export.csv" -En UTF8 -NoType -Delim ','
Además utilizando el Delimitador ";" es confuso para Excel y cambiar esto a "," significa que Excel puede abrir el CSV exportado sin ninguna manipulación adicional de los datos.