Sortera och gruppera objekt efter egenskap i pipelinen

Slutförd

Vissa PowerShell-kommandon skapar sina utdata i en viss ordning. Kommandona Get-Process och Get-Service genererar till exempel utdata som sorteras alfabetiskt efter namn. Get-EventLog genererar utdata som sorteras efter tid. I andra fall kanske utdata inte verkar vara sorterade alls. Ibland kanske du vill att kommandoutdata ska sorteras på ett annat sätt än standardvärdet. Kommandot Sort-Object, som har aliaset sort, kan göra det åt dig.

Sortera-Objekt

Kommandot Sortera objekt accepterar ett eller flera egenskapsnamn att sortera efter. Som standard sorterar kommandot i stigande ordning. Om du vill ändra sorteringsordningen lägger du till parametern -Descending . Om du anger mer än en egenskap sorterar kommandot efter den första egenskapen, sedan efter den andra egenskapen och så vidare. I ett enda kommando går det inte att sortera efter en egenskap i stigande ordning och en annan i fallande ordning.

Följande kommandon är exempel på sortering:

Get-Service | Sort-Object –Property Name –Descending
Get-Service | Sort Name –Desc
Get-Service | Sort Status,Name

Normalt sorteras strängegenskaper utan hänsyn till skiftläge. Det vill säga, gemener och versaler behandlas på samma sätt. Med parametrarna i Sort-Object kan du ange en skiftlägeskänslig sortering, en specifik kulturs sorteringsregler och andra alternativ. Precis som med andra kommandon kan du granska hjälpen för Sort-Object för mer information och exempel.

Gruppera objekt efter egenskap

Genom att sortera objekt kan du också visa objekt i grupper. Cmdletarna Format-List, Format-Table och Format-Wide har parametern -GroupBy som accepterar ett egenskapsnamn. Med parametern -GroupBy kan du gruppera utdata efter den angivna egenskapen.

Följande kommando visar till exempel namnen på tjänster som körs på den lokala datorn i två tvåkolumnslistor som grupperas efter egenskapen Status :

Get-Service | Sort-Object Status,Name | fw -GroupBy Status

Parametern -GroupBy fungerar på samma sätt som kommandot Group-Object . Kommandot Group-Object accepterar piped-indata och ger dig mer kontroll över gruppering av objekten. Gruppobjektet har aliasgruppen.