Bird
Raised Fist0
PowerShellscripting~5 mins

Logical operators (-and, -or, -not) in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the -and operator do in PowerShell?
The -and operator returns $true only if both conditions on its sides are true. It works like saying "and" in everyday language, meaning both things must happen.
Click to reveal answer
beginner
How does the -or operator work in PowerShell?
The -or operator returns $true if at least one of the conditions is true. It means "or" in normal talk, so if either side is true, the whole expression is true.
Click to reveal answer
beginner
Explain the purpose of the -not operator in PowerShell.
The -not operator reverses the truth value of a condition. If something is $true, -not makes it $false, and vice versa. It's like saying "not" in everyday language.
Click to reveal answer
beginner
What will this PowerShell expression return?
$true -and $false
It will return $false because -and needs both sides to be $true. Here, one side is $false, so the whole result is $false.
Click to reveal answer
intermediate
What is the result of this expression?
-not ($false -or $false)
The expression inside the parentheses ($false -or $false) is $false. Then -not reverses it to $true. So the final result is $true.
Click to reveal answer
Which operator returns $true only if both conditions are true?
A-or
B-and
C-not
D==
What does -not $true return?
A$true
BError
C$false
Dnull
If $a = $false and $b = $true, what is the result of $a -or $b?
A$true
Bnull
C$false
DError
Which operator would you use to check if a condition is NOT true?
A-not
B-and
C-or
D-eq
What is the result of $true -and ($false -or $true)?
AError
B$false
Cnull
D$true
Explain how the -and, -or, and -not operators work in PowerShell with simple examples.
Think about how you use 'and', 'or', and 'not' in everyday sentences.
You got /4 concepts.
    Describe a real-life situation where you might use -and and -or in a PowerShell script.
    Imagine checking if you can go outside based on weather and time.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which logical operator in PowerShell means both conditions must be true for the whole expression to be true?
      easy
      A. -xor
      B. -or
      C. -and
      D. -not

      Solution

      1. Step 1: Understand the meaning of -and

        The -and operator requires both conditions to be true for the entire expression to be true.
      2. Step 2: Compare with other operators

        -or means one or both conditions true; -not reverses a condition; -xor means exactly one true.
      3. Final Answer:

        -and -> Option C
      4. Quick Check:

        -and = both true [OK]
      Hint: Remember: -and means both must be true [OK]
      Common Mistakes:
      • Confusing -and with -or
      • Thinking -not means both true
      • Mixing -and with -xor
      2. Which of the following is the correct syntax to check if variable $a is greater than 5 AND $b is less than 10 in PowerShell?
      easy
      A. if ($a -gt 5 && $b -lt 10) { Write-Output 'true' }
      B. if ($a -gt 5 -and $b -lt 10) { Write-Output 'true' }
      C. if ($a > 5 && $b < 10) { Write-Output 'true' }
      D. if ($a > 5 -and $b < 10) { Write-Output 'true' }

      Solution

      1. Step 1: Identify PowerShell logical operator syntax

        PowerShell uses -and, -or, -not for logical operations, not && or > for comparisons.
      2. Step 2: Check comparison operators and logical operator

        -gt and -lt are correct for greater than and less than; -and is correct for AND.
      3. Final Answer:

        if ($a -gt 5 -and $b -lt 10) { Write-Output 'true' } -> Option B
      4. Quick Check:

        PowerShell uses -and, -gt, -lt [OK]
      Hint: Use -and, -gt, -lt for PowerShell conditions [OK]
      Common Mistakes:
      • Using && instead of -and
      • Using > or < instead of -gt or -lt
      • Mixing syntax from other languages
      3. What is the output of this PowerShell code?
      $a = $true
      $b = $false
      if ($a -or $b) { 'Yes' } else { 'No' }
      medium
      A. Yes
      B. No
      C. false
      D. true

      Solution

      1. Step 1: Evaluate $a -or $b

        $a is true, $b is false; -or means if either is true, result is true.
      2. Step 2: Determine if block output

        Since $a -or $b is true, the if block runs and outputs 'Yes'.
      3. Final Answer:

        Yes -> Option A
      4. Quick Check:

        -or with true and false = true [OK]
      Hint: -or is true if any condition is true [OK]
      Common Mistakes:
      • Thinking both must be true for -or
      • Confusing output with boolean true/false
      • Ignoring the if-else structure
      4. Identify the error in this PowerShell statement:
      if (-not $a -and $b) { Write-Output 'Valid' }
      medium
      A. No error, statement is correct
      B. Incorrect use of -and operator
      C. Variables $a and $b are undefined
      D. Missing parentheses around -not condition

      Solution

      1. Step 1: Understand operator precedence

        -not has higher precedence; without parentheses, it applies only to $a, but combined with -and can cause confusion.
      2. Step 2: Fix with parentheses

        Use parentheses: if ((-not $a) -and $b) { ... } to clarify logic and avoid errors.
      3. Final Answer:

        Missing parentheses around -not condition -> Option D
      4. Quick Check:

        Use parentheses with -not in complex expressions [OK]
      Hint: Use parentheses to group -not conditions [OK]
      Common Mistakes:
      • Ignoring operator precedence
      • Assuming -not applies to whole expression
      • Not using parentheses for clarity
      5. You want to write a PowerShell condition that is true only when $x is NOT equal to 10 AND $y is either 5 or 7. Which is the correct expression?
      hard
      A. if (($x -ne 10) -and ($y -eq 5 -or $y -eq 7)) { 'Match' }
      B. if (-not ($x -eq 10 -and $y -eq 5 -or $y -eq 7)) { 'Match' }
      C. if (-not $x -eq 10 -and $y -eq 5 -or $y -eq 7) { 'Match' }
      D. if ($x -ne 10 -or $y -eq 5 -and $y -eq 7) { 'Match' }

      Solution

      1. Step 1: Break down the condition

        $x must NOT be 10, so $x -ne 10; $y must be 5 OR 7, so ($y -eq 5 -or $y -eq 7).
      2. Step 2: Combine with -and and parentheses

        Use parentheses to group $y conditions and combine with $x condition using -and.
      3. Final Answer:

        if (($x -ne 10) -and ($y -eq 5 -or $y -eq 7)) { 'Match' } -> Option A
      4. Quick Check:

        Use parentheses to group OR inside AND [OK]
      Hint: Group OR conditions inside parentheses when combined with AND [OK]
      Common Mistakes:
      • Missing parentheses causing wrong logic
      • Using -or instead of -and between main conditions
      • Incorrect placement of -not operator
      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