Bird
Raised Fist0
PowerShellscripting~30 mins

Comparison operators (-eq, -ne, -gt, -lt) in PowerShell - Mini Project: Build & Apply

Choose your learning style10 modes available
Using Comparison Operators in PowerShell
📖 Scenario: You are helping a store manager check product stock levels to decide if they need to reorder items.
🎯 Goal: Build a PowerShell script that uses comparison operators -eq, -ne, -gt, and -lt to compare stock counts and print messages.
📋 What You'll Learn
Create a dictionary of products with their stock counts
Add a reorder threshold variable
Use comparison operators to check stock levels
Print messages based on the comparisons
💡 Why This Matters
🌍 Real World
Store managers often need to check stock levels to decide when to reorder products. Automating this saves time and avoids running out of items.
💼 Career
Knowing how to use comparison operators in scripts helps automate routine checks and decisions in IT, operations, and inventory management roles.
Progress0 / 4 steps
1
Create the product stock dictionary
Create a dictionary called products with these exact entries: 'Apples' = 50, 'Bananas' = 20, 'Oranges' = 0, 'Grapes' = 15.
PowerShell
Hint

Use @{} to create a dictionary in PowerShell with keys and values separated by =.

2
Add a reorder threshold variable
Create a variable called reorderThreshold and set it to 10.
PowerShell
Hint

Just assign the number 10 to the variable $reorderThreshold.

3
Check stock levels using comparison operators
Use a foreach loop with variables product and stock to iterate over $products.GetEnumerator(). Inside the loop, use -lt to check if stock is less than $reorderThreshold and store the result in a variable called needsReorder.
PowerShell
Hint

Use $products.GetEnumerator() to loop through the dictionary. Use -lt to compare stock with threshold.

4
Print messages based on stock comparison
Inside the foreach loop, use if with $needsReorder to print "Reorder needed for $product" if true, else print "Stock is sufficient for $product".
PowerShell
Hint

Use if ($needsReorder) to decide which message to print with Write-Output.

Practice

(1/5)
1. Which PowerShell operator checks if two values are equal?
easy
A. -eq
B. -ne
C. -gt
D. -lt

Solution

  1. Step 1: Understand the meaning of each operator

    -eq means equals, -ne means not equals, -gt means greater than, -lt means less than.
  2. Step 2: Identify the operator for equality

    The operator that checks if two values are equal is -eq.
  3. Final Answer:

    -eq -> Option A
  4. Quick Check:

    Equals operator = -eq [OK]
Hint: Remember: eq means equal, ne means not equal [OK]
Common Mistakes:
  • Confusing -eq with -ne
  • Mixing -gt and -lt
  • Using == instead of -eq
2. Which of the following is the correct syntax to check if variable $a is greater than 10 in PowerShell?
easy
A. if ($a -gt 10) { }
B. if ($a > 10) { }
C. if ($a -lt 10) { }
D. if ($a -eq 10) { }

Solution

  1. Step 1: Recall PowerShell comparison syntax

    PowerShell uses -gt for greater than, not > like some other languages.
  2. Step 2: Match the correct operator

    The correct syntax to check if $a is greater than 10 is if ($a -gt 10) { }.
  3. Final Answer:

    if ($a -gt 10) { } -> Option A
  4. Quick Check:

    Greater than operator = -gt [OK]
Hint: Use -gt for greater than, not > in PowerShell [OK]
Common Mistakes:
  • Using > instead of -gt
  • Confusing -lt with -gt
  • Missing parentheses in if statement
3. What will be the output of this PowerShell code?
$x = 5
if ($x -ne 5) { 'No' } else { 'Yes' }
medium
A. 5
B. No
C. Yes
D. False

Solution

  1. Step 1: Evaluate the condition $x -ne 5

    $x is 5, so $x -ne 5 means 5 not equal to 5, which is False.
  2. Step 2: Determine which block runs

    Since condition is False, the else block runs, outputting 'Yes'.
  3. Final Answer:

    Yes -> Option C
  4. Quick Check:

    5 not equal 5 is False, so else runs [OK]
Hint: -ne means not equal; false triggers else block [OK]
Common Mistakes:
  • Thinking -ne means equal
  • Confusing output with variable value
  • Ignoring else block
4. Identify the error in this PowerShell snippet:
$num = 10
if ($num -gt 5) { 'Greater' } elseif ($num -lt 5) { 'Smaller' } else { 'Equal' }
medium
A. Missing closing brace for if block
B. No error, code runs correctly
C. Incorrect use of elseif instead of else if
D. Using -gt instead of > operator

Solution

  1. Step 1: Check syntax of if-elseif-else

    PowerShell supports elseif as one word; braces are balanced.
  2. Step 2: Verify operators and structure

    -gt and -lt are correct operators; no syntax errors present.
  3. Final Answer:

    No error, code runs correctly -> Option B
  4. Quick Check:

    elseif is valid in PowerShell [OK]
Hint: PowerShell uses elseif as one word, not else if [OK]
Common Mistakes:
  • Thinking elseif is invalid
  • Expecting > instead of -gt
  • Missing braces confusion
5. You want to write a PowerShell script that prints 'Valid' only if a variable $score is greater than or equal to 70. Which code snippet correctly uses comparison operators to achieve this?
hard
A. if ($score -gt 70) { 'Valid' } else { 'Invalid' }
B. if ($score -lt 70) { 'Valid' } else { 'Invalid' }
C. if ($score -eq 70) { 'Valid' } else { 'Invalid' }
D. if ($score -ge 70) { 'Valid' } else { 'Invalid' }

Solution

  1. Step 1: Understand the requirement

    We want to check if $score is greater than or equal to 70.
  2. Step 2: Identify the correct operator

    -ge means greater than or equal to, which matches the requirement.
  3. Final Answer:

    if ($score -ge 70) { 'Valid' } else { 'Invalid' } -> Option D
  4. Quick Check:

    Greater or equal operator = -ge [OK]
Hint: Use -ge for greater or equal comparisons [OK]
Common Mistakes:
  • Using -gt excludes 70
  • Using -eq only matches exactly 70
  • Using -lt reverses logic
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