max*_*dbe 13 sorting powershell
在PowerShell中,如果我有一个包含版本的字符串列表,"3.0.1.1","3.2.1.1"等,我怎样才能按照System.Version在C#中对它进行排序的方式对其进行排序?
Jam*_*ran 25
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
Run Code Online (Sandbox Code Playgroud)
只需将其转换为版本并按此方式排序:
$list = "3.0.1.1","3.2.1.1"
$sorted = $list | %{ new-object System.Version ($_) } | sort
Run Code Online (Sandbox Code Playgroud)
版本字符串可以转换为 Version 对象,并且
sort-object可以传递脚本块并对结果进行排序。
PS C:\Users\me> "3.11.0.1", "3.0.1.1", "3.2.1.1" | sort
3.0.1.1
3.11.0.1
3.2.1.1
PS C:\Users\me> "3.11.0.1", "3.0.1.1", "3.2.1.1" | sort {[version] $_}
3.0.1.1
3.2.1.1
3.11.0.1
Run Code Online (Sandbox Code Playgroud)
(添加了一个额外的版本字符串以使示例真正有意义。)