2009-04-02 31 views

Trả lời

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 suy nghĩ của tôi chính xác ... – Sung

9

Chỉ cần chuyển nó sang một phiên bản và sắp xếp theo cách đó:

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

1 Bạn sẽ phải thực hành để gõ nhanh có thể;) – Sung

+0

@Sung , Tôi đã chậm trong trường hợp này bởi vì tôi không thể nhớ nếu | sắp xếp hoạt động hay không trong PowerShell. – JaredPar

0

Chỉ cần thêm một trường hợp góc: xử lý PowerShell chữ số này loại duy nhất của phiên bản '2' là không hợp lệ. Phải thêm' 0,0' đến cùng để tạo ra các đối tượng phiên bản trước khi sắp xếp:

if($version -match '^\d$') 
{ 
    $version = $version + '.0' 
} 
New-Object System.Version $version 
Các vấn đề liên quan