Bird
Raised Fist0
PowerShellscripting~5 mins

Sort-Object for ordering in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the PowerShell cmdlet <code>Sort-Object</code> do?

Sort-Object arranges items in a list or collection in order, either ascending or descending.

Click to reveal answer
beginner
How do you sort a list of numbers in descending order using Sort-Object?

Use the -Descending switch. Example: 1,5,3 | Sort-Object -Descending outputs 5 3 1.

Click to reveal answer
beginner
What parameter do you use with Sort-Object to sort by a property name?

Use the -Property parameter followed by the property name. Example: Get-Process | Sort-Object -Property CPU.

Click to reveal answer
intermediate
Can Sort-Object sort by multiple properties? How?

Yes. Provide an array of property names to -Property. Example: Get-Process | Sort-Object -Property CPU, ID.

Click to reveal answer
beginner
What happens if you use Sort-Object without any parameters?

It sorts the input objects by their default property or value in ascending order.

Click to reveal answer
Which switch sorts objects in descending order with Sort-Object?
A-Order
B-Ascend
C-Reverse
D-Descending
How do you sort a list of strings alphabetically using Sort-Object?
AUse <code>Sort-Object -Descending</code>
BUse <code>Sort-Object -Property Length</code>
CUse <code>Sort-Object</code> without parameters
DUse <code>Sort-Object -Property Count</code>
What does this command do? Get-Process | Sort-Object -Property CPU, ID
ASorts processes by CPU usage, then by ID
BSorts processes by ID only
CSorts processes by CPU usage descending
DSorts processes randomly
If you want to sort numbers from smallest to largest, which parameter do you need?
ANo parameter needed
B-Descending
C-Ascending
D-Reverse
What type of input can Sort-Object sort?
AOnly numbers
BAny objects with properties or values
COnly strings
DOnly files
Explain how to sort a list of objects by multiple properties using Sort-Object.
Think about how you can give more than one property name to Sort-Object.
You got /3 concepts.
    Describe the default behavior of Sort-Object when no parameters are given.
    What happens if you just pipe a list to Sort-Object without extra options?
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the PowerShell cmdlet Sort-Object do?
      easy
      A. It creates new objects from scratch.
      B. It arranges objects in a specified order based on property values.
      C. It deletes objects from a list.
      D. It counts the number of objects in a list.

      Solution

      1. Step 1: Understand the purpose of Sort-Object

        Sort-Object is used to order or arrange objects based on their properties or values.
      2. Step 2: Compare options with the cmdlet's function

        Only It arranges objects in a specified order based on property values. correctly describes arranging objects in order. Other options describe unrelated actions.
      3. Final Answer:

        It arranges objects in a specified order based on property values. -> Option B
      4. Quick Check:

        Sort-Object orders data = C [OK]
      Hint: Sort-Object means arranging data in order [OK]
      Common Mistakes:
      • Confusing sorting with deleting or counting
      • Thinking Sort-Object creates new objects
      • Assuming it only works on numbers
      2. Which of the following is the correct syntax to sort a list of numbers stored in $numbers in descending order?
      easy
      A. $numbers | Sort-Object Descending
      B. $numbers | Sort-Object /Descending
      C. $numbers | Sort-Object -descend
      D. $numbers | Sort-Object -Descending

      Solution

      1. Step 1: Recall the correct parameter for descending order

        The correct parameter is -Descending with a dash and full word.
      2. Step 2: Check each option's syntax

        $numbers | Sort-Object -Descending uses the correct dash and spelling. Options A, C, and D have syntax errors or wrong parameter format.
      3. Final Answer:

        $numbers | Sort-Object -Descending -> Option D
      4. Quick Check:

        Use dash and full '-Descending' [OK]
      Hint: Use dash before parameters like -Descending [OK]
      Common Mistakes:
      • Omitting the dash before parameters
      • Using incorrect parameter spelling
      • Using slashes instead of dashes
      3. What is the output of this PowerShell code?
      $data = @( @{Name='John'; Age=30}, @{Name='Anna'; Age=25}, @{Name='Mike'; Age=35} )
      $data | Sort-Object Age | ForEach-Object { $_.Name }
      medium
      A. Anna, John, Mike
      B. John, Anna, Mike
      C. Mike, John, Anna
      D. Anna, Mike, John

      Solution

      1. Step 1: Understand sorting by Age property

        The code sorts the array of objects by the Age property in ascending order: 25, 30, 35.
      2. Step 2: Map sorted objects to their Name property

        After sorting, the names in order are Anna (25), John (30), Mike (35).
      3. Final Answer:

        Anna, John, Mike -> Option A
      4. Quick Check:

        Sort by Age ascending = Anna, John, Mike [OK]
      Hint: Sort-Object defaults to ascending order [OK]
      Common Mistakes:
      • Assuming Sort-Object sorts descending by default
      • Mixing up property names
      • Not accessing the Name property after sorting
      4. You run this code but get an error:
      $items = @(5, 3, 8, 1)
      $items | Sort-Object -descendingg

      What is the problem?
      medium
      A. You must use parentheses around the array.
      B. Sort-Object cannot sort numbers.
      C. The parameter '-descendingg' is misspelled.
      D. The pipe operator '|' is not allowed here.

      Solution

      1. Step 1: Check the parameter spelling

        The parameter should be -Descending, but it is misspelled as -descendingg.
      2. Step 2: Understand impact of misspelling

        PowerShell does not recognize the misspelled parameter, causing an error.
      3. Final Answer:

        The parameter '-descendingg' is misspelled. -> Option C
      4. Quick Check:

        Parameter spelling must be exact [OK]
      Hint: Check parameter spelling carefully [OK]
      Common Mistakes:
      • Misspelling parameters
      • Thinking Sort-Object can't sort numbers
      • Misunderstanding pipe usage
      5. You have this list of objects:
      $people = @( @{Name='Sam'; Score=90}, @{Name='Liz'; Score=90}, @{Name='Tom'; Score=85} )

      You want to sort by Score descending, but if scores are equal, sort by Name ascending. Which command achieves this?
      hard
      A. $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false}
      B. $people | Sort-Object Name, Score -Descending
      C. $people | Sort-Object Score -Descending | Sort-Object Name
      D. $people | Sort-Object -Property Score, Name -Descending

      Solution

      1. Step 1: Understand sorting by multiple properties with different orders

        You want Score sorted descending and Name sorted ascending when scores tie.
      2. Step 2: Analyze each option's approach

        $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false} uses script blocks to specify descending for Score and ascending for Name correctly. $people | Sort-Object -Property Score, Name -Descending applies descending to both, which is wrong. $people | Sort-Object Score -Descending | Sort-Object Name sorts twice, losing the first order. $people | Sort-Object Name, Score -Descending sorts Name first, which is incorrect order.
      3. Final Answer:

        $people | Sort-Object -Property @{Expression='Score';Descending=$true}, @{Expression='Name';Descending=$false} -> Option A
      4. Quick Check:

        Use script blocks for mixed ascending/descending [OK]
      Hint: Use script blocks to mix ascending and descending [OK]
      Common Mistakes:
      • Applying -Descending to all properties at once
      • Sorting twice losing original order
      • Sorting properties in wrong priority order
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard