Сортировать параметры PowerShell dynamici c в порядке убывания - PullRequest
0 голосов
/ 07 января 2020

У меня есть скрипт, который отображает изменения из массива и хеш-таблицы. Изменения отображаются в соответствии с именами сценариев или датами изменений.

При вызове из PS-concole изменения отображаются в виде параметров Dynami c, чтобы упростить показ определенной даты c. Но этот список находится в порядке возрастания, поэтому 2019-12-30 предшествует 2020-01-01. Если имеется много дат, самые последние из них будут находиться в самом низу.

Есть ли способ отменить листинг в порядке убывания этого динамического c параметра?

РЕДАКТИРОВАТЬ Это код, создающий параметры:

[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 Ответ

0 голосов
/ 07 января 2020

Да, вы хотите использовать командлет Sort-Object -Descending. Так что ваши могут выглядеть примерно так:

$myArray = $myArray | Sort-Object -Descending
...