El listado del directorio incluye la fecha de modificación y el tamaño del archivo en un archivo de texto/archivo de Excel.

El listado del directorio incluye la fecha de modificación y el tamaño del archivo en un archivo de texto/archivo de Excel.

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 el lsobjeto de tubería

  • epcsv= 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 ';'- -Delimiterchar 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: ingrese la descripción de la imagen aquí

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.

información relacionada