2016-06-09 10 views
0

Wie sortiere ich mit PowerShell alle Dateien in allen Ordnern nach Größe? Immer wenn ich die Ergebnisse von Get-ChildItem verwende, gruppiert es alle Dateien nach Verzeichnis, auch nachdem es in einer Variablen gespeichert und geändert wurde. Auch dann sind die Dateien nicht in jedem Verzeichnis sortiert.Alle Dateien in allen Ordnern nach Größe sortieren

$files = Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse 
Sort-Object -InputObject $files -Property Length 

Antwort

1

Ich vermute, Sie in den Standardanzeigemodus von System.IO.FileInfo laufen lassen, die leeren Zeilen und den Verzeichnisnamen angezeigt, wenn sie sich ändert. Es dauert auch ewig zu zeigen, weil die Mode Spalte besonders schlecht optimiert ist.

so etwas wie dieses Versuchen:

Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse | 
    Sort-Object -Property Length | 
    Select-Object -Property Length, Name | 
    Format-Table -AutoSize 
2

nicht den Ruf haben Sie noch einen Kommentar (so hoffe ich dies mit stackoverflows Etikette in Ordnung ist), aber Bacon Bits Antwort könnte ein wenig verbessert werden Select- durch Umschalten Objekt und Sort-Objekt um:

Get-ChildItem -File -Filter *.bat -Path C:\git -Recurse | Select-Object -Property Length, Name | Sort-Object -Property Length | Format-Table -AutoSize 

Dies verbessert die Leistung vor allem auf großen Dateisystemen (etwa 50%, wenn ich den obigen Code auf meiner C-Laufwerk)

Verwandte Themen