PowerShell 中的邏輯運算子
Marion Paul Kenneth Mendoza
2023年1月30日
2022年5月16日
- PowerShell 邏輯運算子
-
PowerShell 中的
-and
運算子 -
PowerShell 中的
-or
運算子 -
PowerShell 中的
-xor
運算子 -
PowerShell 中的
-not
運算子
邏輯運算子可以將各種條件轉換為單個條件。
本文將討論真實世界的示例,並使用 PowerShell 在指令碼中應用邏輯運算子。
PowerShell 邏輯運算子
邏輯運算子有 and
、or
、xor
和 not
或!
。
PowerShell 中的 -and
運算子
如果 $a
和 $b
為 true
,則輸出為 true
;否則,false
。
真值表:
A | B | 輸出 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
$a = 0
$b = 0
$a -and $b # false (if both variables are false)
$a = 1
$b = 0
$a -and $b # false (if any of the variables are false)
$a = 1
$b = 1
$a -and $b # true (if both variables are true)
-and
運算子僅在兩者都為真時才返回 true
。一般來說,-and
運算子用於我們希望檢查和滿足所有條件的地方。
這是需要滿足的兩個條件的示例。
$attendance = 102
$paid = "Y"
if($attendance -gt 100 -and $paid -eq "Y"){
Write-Output "Allow for examination."
}
輸出:
Allow for examination.
PowerShell 中的 -or
運算子
與 -and
運算子相比,如果 $a
和 $b
為 false
,則輸出為 false
。
-or
運算子只需要一個變數為 true
即可輸出 true
。
真值表:
A | B | 輸出 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
$a = 0
$b= 0
$a -or $b # false (if both conditions are false)
$a = 1
$b = 0
$a -or $b # true (if any of the variables are true)
$a = 1
$b = 1
$a -or $b # true (if both of the variables are true)
-or
運算子僅在兩個條件都為 false
時才返回 false
。通常,當將任何條件視為 true
時,會使用 -or
運算子。
$attendance = 99
$marks = 201
if($attendance -gt 100 -or $marks -gt 200){
Write-Output "Give five extra marks."
}
輸出:
Give five extra marks.
PowerShell 中的 -xor
運算子
如果 $a
或 $b
中只有一個是 true
,則異或 or
或 -xor
是 true
的結果。如果兩個條件都是 true
,-xor
會產生 false
的結果。
真值表:
A | B | 輸出 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
('a' -eq 'A') -xor ('a' -eq 'z') # true as one of them is true
('a' -eq 'A') -xor ('Z' -eq 'z') # false as both of them is true
('a' -eq 's') -xor ('Z' -eq 'p') # false as both of them are false
PowerShell 中的 -not
運算子
-not
運算子返回與表示式輸出相反的結果。如果表示式的輸出為 true
,則運算子將其返回為 false
,反之亦然。
-not ('a' -eq 'a') # false as the output of expression is true
-not ('v' -eq 'a') # true as output expression is false
-not ('v' -eq 'V') # false as output expression is true
-not ('V' -eq 'V1') # true as output expression is false
感嘆號!
與 -not
運算子相同。
!('a' -eq 'a') # false as the output of expression is true
!('v' -eq 'a') # true as output expression is false
!('v' -eq 'V') # false as output expression is true
!('V' -eq 'V1') # true as output expression is false
Author: Marion Paul Kenneth Mendoza
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn