(14)Powershell中的邏輯運算符

    上一節介紹了Powershell中的比較運算符,以及如何使用Powershell中的位運算來操作文件的屬性,想寫內容參考這裏


    這一節介紹Powershell中的邏輯運算符。

    邏輯運算符可以連接表達式和語句,返回值爲 TRUE 或者 FALSE ,以此來構成條件爲真或爲假的bool(TRUE 或 FALSE)表達式,主要用在 if 等語句,用於條件判斷。

    Powershell支持以下邏輯運算符。    

運算符
說明
示例
-and
邏輯與,兩個條件都爲TRUE時,結果才爲TRUEPS C:\> ( 1 -eq 1) -and ( 1 -eq 3)

False

-or邏輯或,兩個條件都爲FALSE時結果才爲FALSE,否則爲TRUEPS C:\> ( 1 -eq 1) -or ( 1 -eq 3)

True

-xor
邏輯異或,兩個條件不同時爲TRUE,否則爲FALSE

PS C:\> ( 1 -eq 1) -xor ( 1 -eq 3)

True

-not
邏輯非,取反運算。

PS C:\> -not ( 1 -eq 1)

False

!邏輯非,與 -not 等價。

PS C:\> ! ( 1 -eq 1)

False

注意:上面的例子中使用到了比較運算符 -eq ,詳細內容參考Powershell中的比較運算符與位運算符 。另外需要注意邏輯運算符與位運算符的不同,位運算符多了一個字母 "b",即 binary 的首字母。


    邏輯運算的語法如下

<statement> {-AND | -OR | -XOR} <statement>
        {! | -NOT} <statement>

    另外PowerShell 邏輯運算符也具有"短路"的功能,即如果可以判斷整個語句的結果,Powershell便直接返回,不在對其他部分進行判斷。如果包含 and 運算符的語句的左操作數爲 FALSE,則結果爲 FALSE,Powershell 不會再計算右操作數。如果包含 or 運算符的語句的左操作數爲 TRUE,則結果爲 TRUE,Powershell不會再計算右操作數。

    

    邏輯運算符比較簡單,但是在腳本中會經常使用到,例如用於判斷文件或文件夾是否存在,或是判斷log 文件的生成日期是否早於指定的時間等,需要注意的是,你無需死記硬揹他們的優先級,在不清楚哪個運算符優先的情況,把表達式放在括號中來明顯表達語句的優先順序。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章