Wie exportiere ich Dateinamen, Dateipfad und Eigenschaften eines Verzeichnisbaums in CSV?

713
Myles

Ich habe eine Festplatte mit Backups, die ich in einer Kalkulationstabelle schnell und auf folgende spezifische Weise detaillieren muss. Ich hoffe, dass es eine einfache Möglichkeit gibt, das zu tun, was ich über eine Art .bat- oder .cmd-Datei benötige, aber ich weiß nicht, wo ich anfangen soll.

Alles, was ich brauche, sind die ersten beiden Ordnerebenen in der Hierarchie, um zu csv zu gelangen:

Ordnerstruktur

Und das sind die Daten, die ich vom Laufwerk exportieren muss:

Daten für Excel

Ich habe versucht, den folgenden Code in Powershell zu verwenden:

cd\ c: <--- wo sich mein Testordner befindet

dann

cd\ test <--- enthält meine Testordnerstrukturen zur Ausgabe

dann diese, die ich gefunden, bevor meine Frage veröffentlichen.

Get-ChildItem -Recurse -Directory -Depth 3 | Select-Object FullName | Export-Csv Test.csv -NoTypeInformation 

Und ich stelle fest, dass ich irgendwie Select-Objectmehr Ordnereigenschaften angeben muss, um sie an die CSV-Datei auszugeben, aber ich kann nicht scheinen, dass das Obige so funktioniert, wie es sollte.

Stattdessen bekomme ich folgende Fehlermeldung:

Get-ChildItem : A parameter cannot be found that matches parameter name 'Directory'. At line:1 char:34 + Get-ChildItem -Recurse -Directory <<<< -Depth 3 | + CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 

Ich habe auch versucht, meinen Testordner in Notepad ++ zu importieren, und ich bin in der Lage, es als Arbeitsbereich zu sehen, den ich durchsuchen kann, aber ich kann nicht mit den Informationen, die ich benötige, in csv exportieren. Die einzigen Optionen, die ich dort sehen kann, ist das, was Sie im Screenshot sehen, wenn ich mit der rechten Maustaste auf die Verzeichnisse klicke und keine Option zum Ausgeben (ich bin kein Experte).

Notepad ++

Die andere Sache, die ich ausprobiert habe, war das Erstellen einer test.cmd-Datei, in der Folgendes enthalten ist:

C:\TEST\ dir >> C:\TEST\test.csv 

Nachdem ich das ausgeführt habe, scheint es mir ein bisschen näher zu kommen, wonach ich suche, aber ich sehe immer noch nicht die Informationen, die ich brauche, wie in meinem ursprünglichen Excel-Screenshot oben in diesem Beitrag angegeben:

output.csv aus der .cmd-Datei

Wie Sie sehen, fehlt mir der richtige Verzeichnispfad. <DIR>Stattdessen sehe ich nicht die zweite Ebene in der Ordnerstruktur, die die Unterordner enthält. Die Anzahl und Größe der Dateien für jeden Ordner und das Sortieren in Spalten ist ebenfalls nicht korrekt.

Kann mir jemand mit dem Wissen über die befehlsbasierte Datenbankerstellung helfen? Meine Frage wurde angehalten, weil sie nicht detailliert genug war, aber ich habe jetzt alles unternommen, um alles zu erläutern, was ich ausprobiert habe, und mit über 2 Petabytes Speicher-Backups in die Kalkulationstabelle aus unserem Nearline-Speicher, den ich benötigen kann schnell und effizient

Vielen Dank im Voraus.

0
Was ist die Nummer in Spalte D ("Ordneranzahl")? Die Anzahl der Unterordner unter Ordner A, Ordner B und Ordner C? Michael Harvey vor 5 Jahren 0
Es könnte einfacher sein, einfach [WinDirStat] (https://windirstat.net/) auszuführen, anstatt den Code selbst zu schreiben. Bill_Stewart vor 5 Jahren 0

1 Antwort auf die Frage

0
postanote

Ich stimme mit Bill_Stuart über den WinDirStat-Deal überein ... (obwohl ich ihn seit Jahren nicht mehr verwenden musste) Wenn Sie jedoch sagen, dass Sie dies tun müssen, ändern Sie die Berechnung in etwas, was Sie möchten die Größe Sache.

Clear-Host Get-ChildItem -Path 'd:\temp' -Recurse -Directory -Depth 3 |  Select-Object Name,FullName, @}, @}, @} ` | Format-Table -AutoSize  # Results   Name FullName FolderCount FileCount SizeMB ---- -------- ----------- --------- ------ abcpath0 D:\temp\abcpath0 2 5 0.005889892578125 abcpath1 D:\temp\abcpath1 2 5 0.005889892578125 abcpath2 D:\temp\abcpath2 2 5 0.005889892578125 Duplicates D:\temp\Duplicates 24 12677 88.9826745986938 EmptyFolder D:\temp\EmptyFolder 0 0 0 NewFiles D:\temp\NewFiles 0 4 0.000568389892578125 ...