Sortera och gruppera objekt efter egenskap i pipelinen
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.