在PowerShell中使用Where-Object的方法
PowerShell中的Where-Object或(别名:Where)用于过滤通过管道提供的数据输出。
我们可以使用两种方法将Where-Object用于管道输入。
一种。ScriptMethod-
在此方法中,我们使用ScriptBlock来过滤具有属性名称,值和比较运算符的输出。
Get−Service | Where−Object{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}
您也可以使用Alias:Where代替Where-Object。
Get−Service | Where{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}
其他语法“?” 也可以使用(问号)代替Where-Object命令。
Get−Service | ?{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}
上面的命令将获取具有StartType AUTOMATIC和状态STOPPED的服务。
b。比较声明-
此方法更像是一种自然语言,它是在PowerShell 3.0版本中引入的,在此之前,只有一个scriptblock方法。要使用此方法,我们将使用“属性名称”,“值”和比较语句,但不使用脚本块,并使用“属性”和“值”参数。
例如,要过滤已禁用StartType的服务的输出,我们将使用以下代码。
Get−Service | Where−Object −Property StartType −EQ −Value Disabled
当您提供单个属性(例如,数组到对象对象命令)时,该属性的值将被视为布尔表达式,并且当值的长度不为零时,输出为true。
例如,
PS C:\> ("Windows","","PowerShell","","Azure") | Where−Object LengthWindows
PowerShell
Azure
类似的命令是
("Windows","","PowerShell","","Azure") | where{$_.length −gt 0}
或者,
("Windows","","PowerShell","","Azure") | Where−Object Length −GT 0
以上是 在PowerShell中使用Where-Object的方法 的全部内容, 来源链接: utcz.com/z/314290.html