在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 Length

Windows

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

回到顶部