Сортировка динамических параметров PowerShell в порядке убывания
У меня есть сценарий, который отображает изменения из массива и хеш-таблицы. Изменения отображаются в соответствии с названиями сценариев или датами изменений.
При вызове из PS-concole у меня есть изменения, перечисленные как динамические параметры, чтобы упростить отображение конкретной даты. Но этот список отсортирован по возрастанию, поэтому 30 декабря 2019 г. предшествует 01 января 2020 г. Если дат много, самая последняя будет внизу.
Есть ли способ перевернуть список в порядке убывания этого динамического параметра?
ИЗМЕНИТЬ Это код, создающий параметры:
[CmdletBinding()]
param ()
DynamicParam
{
$ParamAttrib = New-Object System.Management.Automation.ParameterAttribute
$AttribColl = New-Object System.Collections.ObjectModel.Collection[System.Attribute]
$AttribColl.Add($ParamAttrib)
$AttribColl.Add((New-Object System.Management.Automation.ValidateSetAttribute($global:changeloghash.Keys)))
$RuntimeParam = New-Object System.Management.Automation.RuntimeDefinedParameter('SkriptChanges', [string], $AttribColl)
$ParamAttrib2 = New-Object System.Management.Automation.ParameterAttribute
$AttribColl2 = New-Object System.Collections.ObjectModel.Collection[System.Attribute]
$AttribColl2.Add($ParamAttrib2)
$changeDates = @()
$global:changeloghash.Values.GetEnumerator() | % {$_[0]} | select -Unique | % {$changeDates += $_}
$AttribColl2.Add((New-Object System.Management.Automation.ValidateSetAttribute($changeDates)))
$RuntimeParam2 = New-Object System.Management.Automation.RuntimeDefinedParameter('ChangeDatum', [string], $AttribColl2)
$RuntimeParamDic = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
$RuntimeParamDic.Add('SkriptChanges', $RuntimeParam)
$RuntimeParamDic.Add('ChangeDatum', $RuntimeParam2)
return $RuntimeParamDic
1 ответ
Да, вы бы хотели использовать Sort-Object -Descending
командлет. Так что ваш может выглядеть примерно так:
$myArray = $myArray | Sort-Object -Descending