1 votes

La liste des répertoires comprend la date de modification, la taille du fichier dans un fichier texte/excel.

Je souhaite répertorier les répertoires, sous-répertoires et fichiers d'un lecteur entier (Z :) dans un seul fichier texte avec toutes les dates et les tailles de fichiers. Je peux ensuite ouvrir le fichier dans Excel.

J'utilise actuellement la commande suivante :

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

Existe-t-il un moyen d'obtenir un résultat similaire à celui que l'on obtient habituellement avec la commande tree, avec tous les fichiers et sous-répertoires empilés en un seul et non répertoriés séparément ?

Que dois-je faire ou saisir si je veux supprimer d'autres informations inutiles comme l'heure ?

5voto

STTR Points 6623
powershell ls -r -fo Z:\ ^|?{!$_.PSIsContainer}^|Select DirectoryName,Name,BaseName,Extension,Length,CreationTime,LastAccessTime,LastWriteTime ^|epcsv Z:\excel.csv -En  UTF8 -NoType -Delim ';'
  • ^| - ^ - masquer le symbole du transporteur/de la canalisation dans cmd, | - objet de tuyauterie

  • $_ - pour l'objet actuel dans la ligne de tuyauterie ; exemple :

    powershell 'a','B','c','d','F' ^|%{if($_.toLower() -gt 'b'){write $_}}
  • ? = where - le contrôle n'est pas un répertoire ?{!$_.PSIsContainer} cycle {}

  • ls -r - obtenir tous les fichiers dans/et tous les sous-répertoires et le répertoire courant

  • -fo = -force - ajouter à la liste des fichiers cachés, des fichiers système et des fichiers à attributs en lecture seule

  • 'Z:\' - chemin d'accès au répertoire, en cas d'utilisation 'Z:' - placer le répertoire actuel à Z : cd.

  • select - sélectionner les propriétés à ls objet de tuyauterie

  • epcsv = Export-Csv - Exporter un objet PowerShell vers un fichier de valeurs séparées (CSV).

  • -En = -Encoding - L'encodage du fichier CSV exporté. Les valeurs valides sont : Unicode, UTF7, UTF8, ASCII, UTF32, BigEndian unicode, Default et OEM. La valeur par défaut est ASCII.

  • -NoType = -NoTypeInformation - Omettre les informations sur le type dans le fichier CSV.

  • -Delim ';' - -Delimiter c Un délimiteur pour séparer les valeurs des propriétés. La valeur par défaut est une virgule (,). Saisissez un caractère, tel qu'un Pour spécifier un point-virgule ( ;), mettez-le entre guillemets.

résultat : enter image description here

1voto

wmcdade Points 11

La commande ci-dessus a des problèmes avec les espaces dans les noms de répertoires, j'ai trouvé que cette commande powershell de base fonctionne mieux dans mon expérience :

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

En outre, l'utilisation du délimiteur " ;" est source de confusion pour Excel. En le remplaçant par ",", Excel peut ouvrir le fichier CSV exporté sans autre manipulation des données.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X