Powershell按属性排序对象,即数字字符串

时间:2017-02-28 20:11:21

标签: sorting powershell

我有以下PS脚本;

Resolve-Path HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\* | Sort-Object PSChildName -Descending | Get-ItemProperty -Name MSBuildToolsPath

PSChildName是一个在我的电脑中保存已安装的msbuild工具版本的属性。 我试图按工具版本desc排序(14.0应该在顶部)。它提供以下意外输出;

MSBuildToolsPath : C:\windows\Microsoft.NET\Framework64\v3.5\ 
PSPath   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5 
PSParentPath     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions 
PSChildName      : 3.5 
PSDrive          : HKLM 
PSProvider       : Microsoft.PowerShell.Core\Registry

MSBuildToolsPath : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ 
PSPath           : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 
PSParentPath     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions 
PSChildName      : 4.0 
PSDrive          : HKLM 
PSProvider       : Microsoft.PowerShell.Core\Registry

MSBuildToolsPath : C:\Program Files (x86)\MSBuild\14.0\bin\amd64\ 
PSPath           : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 
PSParentPath     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions 
PSChildName      : 14.0 
PSDrive          : HKLM 
PSProvider       : Microsoft.PowerShell.Core\Registry

MSBuildToolsPath : C:\windows\Microsoft.NET\Framework64\v2.0.50727\ 
PSPath           : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0 
PSParentPath     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions 
PSChildName      : 2.0 
PSDrive          : HKLM 
PSProvider       : Microsoft.PowerShell.Core\Registry

你可以看到它没有按预期排序desc。我想把14.0放到最顶端。

我怎样才能做到这一点?

0 个答案:

没有答案