2016-06-30 22 views
2

Ich habe eine Abfrage, die eine Liste von Ordnern in einem Pfad zurückgibt:Reihenfolge nummeriert Verzeichnisse, die mit einem fullstop begrenzt sind

Get-ChildItem "." -Directory -Filter "*"| Select -Property Name | Sort-Object Name -Descending 

In den Ergebnissen für das ich eine Liste der Objekte erhalten:

Mode    LastWriteTime  Length Name 
----    -------------  ------ ---- 
d----  30/06/2016  09:51   1.3.35.6503 
d----  14/12/2015  11:04   1.3.29.5885                                   
d----  16/11/2015  09:54   1.3.28.5790                                   
d----  27/06/2016  19:33   1.18.3.6497                                   
d----  21/06/2016  19:33   1.18.2.6492                                   
d----  21/06/2016  11:55   1.18.1.6490                                   
d----  10/05/2016  19:34   1.17.99.6427 

Dies ist in einer Reihenfolge, die ich nicht erwartet hatte! Wenn ich den Windows Explorer betrachte, werden sie in die richtige Reihenfolge gebracht, wenn ich die Spalte nach absteigend sortiere.

Es scheint so, als würde man sie einzeln als Text sortieren, während Windows Explorer ein bisschen schlauer ist und es über Strings macht.

Gibt es einen einfachen Weg in PowerShell, um diese Bestellung in die richtige Reihenfolge zu bringen (d. H. Wie Windows Explorer)? Ich denke über eine Funktion nach, um die Liste zurückzugeben und ein neues Objekt mit FullName und Name zu erstellen, indem ich den ursprünglichen Namen in 4 Elemente aufspalte und nach diesen einzeln sortiere.

Antwort

3

Sie möchten die Dateien nach Version sortieren. Sie brauchen nicht die Zeichenfolge zu spalten, werfen Sie einfach die BaseName zu einem version und sortieren sie:

Get-ChildItem '.' -Directory -Filter "*" | sort { [version]$_.BaseName } 

Ergebnis:

Mode    LastWriteTime   Length Name                                  
----    -------------   ------ ----                                  
-a----  30.06.2016  13:15    0 1.3.28.5790.txt                               
-a----  30.06.2016  13:15    0 1.3.29.5885.txt                               
-a----  30.06.2016  13:15    0 1.3.35.6503.txt                               
-a----  30.06.2016  13:15    0 1.17.99.6427.txt                               
-a----  30.06.2016  13:15    0 1.18.1.6490.txt                               
-a----  30.06.2016  13:15    0 1.18.2.6492.txt                               
-a----  30.06.2016  13:15    0 1.18.3.6497.txt 
+1

Perfect, danke! –

Verwandte Themen