Bird
Raised Fist0
PowerShellscripting~20 mins

Sort-Object for ordering in PowerShell - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Sort-Object Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this Sort-Object command?
Given this PowerShell command, what will be the output?
PowerShell
1..5 | Sort-Object -Descending
AError: Parameter set cannot be resolved
B1 2 3 4 5
C5 4 3 2 1
D5 3 1 2 4
Attempts:
2 left
💡 Hint
Think about what -Descending does to a list of numbers.
💻 Command Output
intermediate
2:00remaining
What does this Sort-Object command output?
What is the output of this command?
PowerShell
'apple','banana','cherry' | Sort-Object Length
Aapple banana cherry
Bbanana cherry apple
Capple cherry banana
Dcherry apple banana
Attempts:
2 left
💡 Hint
Sort by the length of each word from shortest to longest.
📝 Syntax
advanced
2:00remaining
Which option correctly sorts objects by a property in descending order?
You have objects with a property 'Age'. Which command sorts them descending by Age?
PowerShell
$people = @(@{Name='Ann';Age=30}, @{Name='Bob';Age=25}, @{Name='Cara';Age=35})
A$people | Sort-Object -Property Age -Descending
B$people | Sort-Object Age Descending
C$people | Sort-Object -Age -Descending
D$people | Sort-Object -Property Age Desc
Attempts:
2 left
💡 Hint
Check the correct syntax for Sort-Object parameters.
🚀 Application
advanced
2:00remaining
How to sort files by LastWriteTime descending?
You want to list files sorted by last modified date, newest first. Which command works?
PowerShell
Get-ChildItem | ???
ASort-Object -Property LastWriteTime Desc
BSort-Object LastWriteTime Descending
CSort-Object -LastWriteTime -Descending
DSort-Object -Property LastWriteTime -Descending
Attempts:
2 left
💡 Hint
Use the correct parameter names and switches for Sort-Object.
🧠 Conceptual
expert
2:00remaining
What error does this Sort-Object command raise?
What error occurs when running this command?
PowerShell
1..5 | Sort-Object -Property NonExistentProperty
ANo error, outputs original list
BPropertyNotFoundException
CSyntaxError
DNullReferenceException
Attempts:
2 left
💡 Hint
Think about what happens if you sort by a property that does not exist.

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