$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
答案 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]
并对该属性进行排序。如果你需要在代码中不止一次引用这个来调用正则表达式,这将特别有用。