📖 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
Step 1: Understand the meaning of each operator
-eq means equals, -ne means not equals, -gt means greater than, -lt means less than.
Step 2: Identify the operator for equality
The operator that checks if two values are equal is -eq.
Final Answer:
-eq -> Option A
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
Step 1: Recall PowerShell comparison syntax
PowerShell uses -gt for greater than, not > like some other languages.
Step 2: Match the correct operator
The correct syntax to check if $a is greater than 10 is if ($a -gt 10) { }.
Final Answer:
if ($a -gt 10) { } -> Option A
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
Step 1: Evaluate the condition $x -ne 5
$x is 5, so $x -ne 5 means 5 not equal to 5, which is False.
Step 2: Determine which block runs
Since condition is False, the else block runs, outputting 'Yes'.
Final Answer:
Yes -> Option C
Quick Check:
5 not equal 5 is False, so else runs [OK]
Hint: -ne means not equal; false triggers else block [OK]
PowerShell supports elseif as one word; braces are balanced.
Step 2: Verify operators and structure
-gt and -lt are correct operators; no syntax errors present.
Final Answer:
No error, code runs correctly -> Option B
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
Step 1: Understand the requirement
We want to check if $score is greater than or equal to 70.
Step 2: Identify the correct operator
-ge means greater than or equal to, which matches the requirement.
Final Answer:
if ($score -ge 70) { 'Valid' } else { 'Invalid' } -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.