Windows Powershell条件表达式之条件操作符

Powershell 中的比较运算符
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含

进行比较

可以将比较表达式直接输入进Powershell控制台,然后回车,会自动比较并把比较结果返回。

代码如下:

PS C:Powershell> (3,4,5 ) -contains 2
False
PS C:Powershell> (3,4,5 ) -contains 5
True
PS C:Powershell> (3,4,5 ) -notcontains 6
True
PS C:Powershell> 2 -eq 10
False
PS C:Powershell> "A" -eq "a"
True
PS C:Powershell> "A" -ieq "a"
True
PS C:Powershell> "A" -ceq "a"
False
PS C:Powershell> 1gb -lt 1gb+1
True
PS C:Powershell> 1gb -lt 1gb-1
False

求反

求反运算符为-not 但是像高级语言一样”! “ 也支持求反。

代码如下:

PS C:Powershell> $a= 2 -eq 3
PS C:Powershell> $a
False
PS C:Powershell> -not $a
True
PS C:Powershell> !($a)
True

布尔运算

-and :和
-or :或
-xor :异或
-not :逆

代码如下:

PS C:Powershell> $true -and $true
True
PS C:Powershell> $true -and $false
False
PS C:Powershell> $true -or $true
True
PS C:Powershell> $true -or $false
True
PS C:Powershell> $true -xor $false
True
PS C:Powershell> $true -xor $true
False
PS C:Powershell>  -not  $true
False

比较数组和集合

过滤数组中的元素

代码如下:

PS C:Powershell> 1,2,3,4,3,2,1 -eq 3
3
3
PS C:Powershell> 1,2,3,4,3,2,1 -ne 3
1
2
4
2
1

验证一个数组是否存在特定元素

代码如下:

PS C:Powershell> $help=(man ls)
PS C:Powershell> 1,9,4,5 -contains 9
True
PS C:Powershell> 1,9,4,5 -contains 10
False
PS C:Powershell> 1,9,4,5 -notcontains 10
True

一、值比较

1) -eq: 相等(equal)运算符
2) –ne:不相等(not-equal)运算符
3) –lt: 小于(less-than)
4) –gt: 大于(greater than)
5) le: 小于等于 (less-than-or-equal)
6) ge: 大于等于(greater-than-or-equal)
值比较运算符可以用来比较两个数字,也可以用来比较两个字符串。
注意:字符串比较时忽略大小写,如果需要大小写敏感比较,可以使用操作符-ceq, -clt, -cle, -cge。大小写敏感比较时,小写字母小于大写字母。
在PowerShell中明确的大小写不敏感比较操作符是在默认操作符前加前缀i,即-ieq,-ilt,-ile,-igt,-ige。

二、隐式类型转换

在PowerShell中自动转换的通常规则是对于两个不同类型变量组成的表达式,自动将右侧的变量转换为左侧变量的类型,之后计算表达式的值。

三、逻辑和位操作

1) –and与操作符,在操作符两边的操作数均为$true时返回$true。
2) –or或操作符,在任何一个操作数为$true时返回$true。
3) –xor异或操作符,如果有一个操作数是$true,那么表达式返回$true;如果两个操作数均为$true,则返回$false。
4) –not或者! 取反操作符,只有一个操作数,作用将其取反。
5) –band和-bor按位操作与(-band)和按位或(-bor)操作符,仅用于整数。

四、布尔转换

包括位操作符在内的多个操作符返回数字类型的值,PowerShell可以自动将其转换为布尔类型的值,转换规则是任何非空值将会被转换为$true。非空的概念可以被延伸到更宽泛的范围,下的即PowerShell将会在需要时隐式转换为布尔值。也可以在任何值前加[bool]来显式执行强制类型转换,转换规则如下:
1) 任何非零值将会被转换为$true
2) 非零长度的字符串将会被转换为$true
3) 至少有一项的集合会返回$true
4) 其他对象将会被转换成$true,除非它们为$null

五、-like和-match字符串操作符为真,可以用其检测字符串是否由特定模式组成或其中是否包含所需的字符串形式。

六、集合与条件表达式

PowerShell允许在条件表达式的左边使用集合。Shell解释引擎将会把条件表达式逐个应用到集合的成员上,结果是包含返回真值的成员新集合。

(0)

相关推荐

  • Windows Powershell IF-ELSEIF-ELSE 语句

    Where-Object 进行条件判断很方便,如果在判断后执行很多代码可以使用IF-ELSEIF-ELSE语句.语句模板: 复制代码 代码如下: If(条件满足){ 如果条件满足就执行代码 } Else { 如果条件不满足 } 条件判断必须放在圆括号中,执行的代码必须紧跟在后面的花括号中. 复制代码 代码如下: PS C:Powershell> $n=8 PS C:Powershell> if($n -gt 15) {"$n  大于 15 " } PS C:Powershe

  • Windows Powershell Switch 语句

    下面的例子将If-ElseIF-Else转换成Switch语句 复制代码 代码如下: # 使用 IF-ElseIF-Else If( $value -eq 1 ) {     "Beijing" } Elseif( $value -eq 2) {     "Shanghai" } Elseif( $value -eq 3 ) {     "Tianjin" } Else {     "Chongqing" }   # 使用 S

  • Windows Powershell Where-Object 条件过滤

    过滤管道结果 使用Get-Process返回所有的当前进程 ,但是你可能并不对所有的进程感兴趣,然后通过每个Process对象的属性进行过滤.首先得知道每个对象支持那些属性. 复制代码 代码如下: PS C:Powershell> Get-Process | select -First 1 | fl * __NounName                 : Process Name                       : AcroRd32 Handles               

  • Windows Powershell条件表达式之条件操作符

    Powershell 中的比较运算符 -eq :等于 -ne :不等于 -gt :大于 -ge :大于等于 -lt :小于 -le :小于等于 -contains :包含 -notcontains :不包含 进行比较 可以将比较表达式直接输入进Powershell控制台,然后回车,会自动比较并把比较结果返回. 复制代码 代码如下: PS C:Powershell> (3,4,5 ) -contains 2 False PS C:Powershell> (3,4,5 ) -contains 5

  • 浅谈python条件表达式:多项分支,双向分支

    如下所示: # ### 多项分支 '''<br> if 条件表达式1: code1 code2 elif 条件表达式2: code3 code4 elif 条件表达式3: code5 code6 else: code7 如果条件表达式1成立,直接执行if当中的代码块,如果不满足 依次向下判断,看是否条件表达式2成立,成立则执行对应代码块, 反之,继续向下判断 条件表达式3 ,如果成立执行对应代码块, 反之,继续向下判断 如果都没有满足的条件,直接执行else中的代码块 elif 这个条件可以是

  • 浅谈JS如何写出漂亮的条件表达式

    多条件语句 多条件语句使用Array.includes 举个例子 function printAnimals(animal) { if (animal === "dog" || animal === "cat") { console.log(`I have a ${animal}`); } } console.log(printAnimals("dog")); // I have a dog 这种写法在条件比较少的情况下看起来没有问题,此时我们只

  • Python的条件表达式和lambda表达式实例

    条件表达式 条件表达式也称为三元表达式,表达式的形式:x if C else y.流程是:如果C为真,那么执行x,否则执行y. 经过测试x,y,C可以是函数,表达式,常量等等: def put(): print('this is put()') def get(): print('this is get()') def post(): return 0 method = put if post() else get method() lambda表达式 lambda [arguments] :

  • 对python条件表达式的四种实现方法小结

    如下所示: a, b, c = 1, 2, 3   # 1.常规   if a>b:     c = a else:     c = b   # 2.表达式 c = a if a>b else b # 先执行中间的if,如果返回True,就是左边,False是右边.   # 3.二维列表 c = [b,a][a>b] #实际是[b,a][False],因为False被转换为0,所以是[1,2][0],也就是[1]                       # False返回第一个,Tr

  • 手把手带你走进Go语言之条件表达式

    目录 概述 if 语句 switch 语句 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 6 课) if 语句 通过一条或多条语句的执行结果来决定执行的代码块. 如图: 格式: if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 上

  • 详解Java如何简化条件表达式

    目录 一个实际例子 使用断言 表驱动 使用枚举 策略模式 在复杂的实际业务中,往往会出现各种嵌套的条件判断逻辑.我们需要考虑所有可能的情况.随着需求的增加,条件逻辑会变得越来越复杂,判断函数会变的相当长,而且也不能轻易修改这些代码.每次改需求的时候,都要保证所有分支逻辑判断的情况都改了. 面对这种情况,简化判断逻辑就是不得不做的事情,下面介绍几种方法. 一个实际例子 @GetMapping("/exportOrderRecords") public void downloadFile(

  • MySql 中聚合函数增加条件表达式的方法

    Mysql 与聚合函数在一起时候where条件和having条件的过滤时机 where 在聚合之前过滤 当一个查询包含了聚合函数及where条件,像这样的情况 select max(cid) from t where t.id<999 这时候会先进行过滤,然后再聚合.先过滤出ID<999的记录,再查找最大的cid返回. having 在聚合之后过滤 having在分组的时候会使用,对分组结果进行过滤,通常里面包含聚合函数. SELECT ip,MAX(id) FROM app GROUP BY

  • Windows Powershell 自动化变量

    Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$home 配置信息:例如powershell控制台的大小,颜色,背景等. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等. PS> $HOME C:\Users\test PS> $currentProcessID=$pid PS> $currentProcessID 5356 PS> Get-Process -Id $pid H

随机推荐