Bird
Raised Fist0
PowerShellscripting~3 mins

Why Comparison operators (-eq, -ne, -gt, -lt) in PowerShell? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if your script could instantly tell you when something important changes, without you watching every detail?

The Scenario

Imagine you have a long list of numbers or names in a file, and you want to find which ones are equal to a certain value, or which ones are bigger or smaller. Doing this by opening the file and checking each item one by one is tiring and slow.

The Problem

Manually comparing values means reading through everything slowly, making mistakes easy to happen, and wasting a lot of time. It’s like trying to find a friend in a crowd by looking at each face carefully without any help.

The Solution

Comparison operators like -eq, -ne, -gt, and -lt let you quickly check if values are equal, not equal, greater than, or less than. They make your script smart enough to decide what to do next without you checking each item manually.

Before vs After
✗ Before
if ($value == 5) { Write-Output 'Match' } else { Write-Output 'No match' }
✓ After
if ($value -eq 5) { Write-Output 'Match' } else { Write-Output 'No match' }
What It Enables

With these operators, you can automate smart decisions in your scripts, saving time and avoiding errors.

Real Life Example

For example, a script that checks if a server’s CPU usage is greater than 80% (-gt 80) can alert you before problems happen.

Key Takeaways

Manual checks are slow and error-prone.

Comparison operators make scripts smarter and faster.

They help automate decisions based on data values.

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