上一节介绍了Powershell中的比较运算符,以及如何使用Powershell中的位运算来操做文件的属性,想写内容参考这里。
shell
这一节介绍Powershell中的逻辑运算符。bash
逻辑运算符能够链接表达式和语句,返回值为 TRUE 或者 FALSE ,以此来构成条件为真或为假的bool(TRUE 或 FALSE)表达式,主要用在 if 等语句,用于条件判断。
ide
Powershell支持如下逻辑运算符。 spa
运算符 |
说明 |
示例 |
-and |
逻辑与,两个条件都为TRUE时,结果才为TRUE | PS C:\> ( 1 -eq 1) -and ( 1 -eq 3) Falseblog |
-or | 逻辑或,两个条件都为FALSE时结果才为FALSE,不然为TRUE | PS C:\> ( 1 -eq 1) -or ( 1 -eq 3) Trueget |
-xor |
逻辑异或,两个条件不一样时为TRUE,不然为FALSE | PS C:\> ( 1 -eq 1) -xor ( 1 -eq 3)it Truetable |
-not |
逻辑非,取反运算。 | PS C:\> -not ( 1 -eq 1)class 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 文件的生成日期是否早于指定的时间等,须要注意的是,你无需死记硬背他们的优先级,在不清楚哪一个运算符优先的状况,把表达式放在括号中来明显表达语句的优先顺序。