2009-04-02 9 views

Odpowiedz

22
PS C:\> $ver="3.0.1.1","3.2.1.1" 
PS C:\> $ver|%{[System.Version]$_}|sort 

Major Minor Build Revision 
----- ----- ----- -------- 
3  0  1  1 
3  2  1  1 
+0

+1 moje myśli dokładnie ... – Sung

9

Wystarczy przekształcić go w wersję i uporządkować ten sposób:

$list = "3.0.1.1","3.2.1.1" 
$sorted = $list | %{ new-object System.Version ($_) } | sort 
+1

+1 Będziesz musiał ćwiczyć, aby szybciej wpisać zapewne;) – Sung

+0

@Sung Byłem powolny w tym przypadku, ponieważ nie mogłem sobie przypomnieć, czy | sortowanie działało lub nie w PowerShell. – JaredPar

0

Wystarczy dodać inny przypadek róg: PowerShell traktuje to jednocyfrowy rodzaj wersji „2” za nieważne. trzeba dodać”.0' do końca, aby utworzyć obiekt wersji przed sortowaniem:

if($version -match '^\d$') 
{ 
    $version = $version + '.0' 
} 
New-Object System.Version $version