按升序编号排序

时间:2015-03-12 18:18:03

标签: powershell

$var_1text = $var_2text = $var_17text = $null
Get-Variable -Name var_*

我得到以下输出:1-17-2

var_1text
var_17text
var_2text

但我想要以下输出:1-2-17

var_1text
var_2text
var_17text

2 个答案:

答案 0 :(得分:2)

使用Sort-Object cmdlet:

Get-Variable -Name var_* |Sort-Object { ($_.Name -replace "[^\d]","") -as [int] }

答案 1 :(得分:1)

沿着同样的路线

Get-Variable -Name var_*  | Select-Object *,@{L="NameIndex";E={[void]($_.Name -match '\d+');[int]$Matches[0]}} | Sort-Object NameIndex

您可以创建仅包含数字部分的计算属性。将其投射到[int]并对该属性进行排序。如果你需要在代码中不止一次引用这个来调用正则表达式,这将特别有用。