当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Where-Object (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:13:39 浏览:15 分类:玩电脑

Where-Object (Microsoft.PowerShell.Core)


Where-Object

模块 :Microsoft.PowerShell.Core

根据属性值从集合中选择对象。

句法

Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     [-EQ]
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-FilterScript] <ScriptBlock>
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Match
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CEQ
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLT
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -GE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CGE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -LE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLE
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Like
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotLike
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotMatch
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Contains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotContains
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -In
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -NotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -CNotIn
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -Is
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     [[-Value] <Object>]
     -IsNot
     [<CommonParameters>]
Where-Object
     [-InputObject <PSObject>]
     [-Property] <String>
     -Not
     [<CommonParameters>]

描述

Where-Object cmdlet 从传递给它的对象集合中选择具有特定属性值的对象。例如,您可以使用 Where-Object cmdlet 来选择在特定日期之后创建的文件、具有特定 ID 的事件或使用特定 Windows 版本的计算机。

从 Windows PowerShell 3.0 开始,有两种不同的方法来构造 Where-Object 命令。

  • 脚本块。您可以使用脚本块来指定属性名称、比较运算符和属性值。 Where-Object 返回脚本块语句为 true 的所有对象。

    例如,以下命令获取 Normal 优先级类别中的进程,即 PriorityClass 属性值等于 Normal 的进程。

    Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}

    所有 PowerShell 比较运算符在脚本块格式中均有效。有关详细信息,请参阅 about_Comparison_Operators。

  • 比较声明。您还可以编写比较语句,这更像自然语言。 Windows PowerShell 3.0 中引入了比较语句。

    例如,以下命令还获取优先级为 Normal 的进程。这些命令是等效的,您可以互换使用它们。

    Get-Process | Where-Object -Property PriorityClass -EQ -Value "Normal"
    Get-Process | Where-Object PriorityClass -EQ "Normal"

    从 Windows PowerShell 3.0 开始,Where-ObjectWhere-Object 命令中添加比较运算符作为参数。除非指定,所有运算符都不区分大小写。在 Windows PowerShell 3.0 之前,PowerShell 语言中的比较运算符只能在脚本块中使用。

当您向 Where-Object 提供单个属性时,cmdlet 会将属性的值视为布尔表达式。当属性的长度值不为零时,表达式的计算结果为$true。例如: ('hi', '', 'there') |其中对象长度

前面的示例在功能上等同于:

    ('hi', '', 'there') | Where-Object Length -GT 0
    ('hi', '', 'there') | Where-Object { $_.Length -gt 0 }

    有关 PowerShell 如何计算布尔值的更多信息,请参阅 about_Booleans。

    示例

    示例 1:停止服务

    这些命令获取所有已停止服务的列表。 $_ 自动变量表示传递给 Where-Object cmdlet 的每个对象。

    第一个命令使用脚本块格式,第二个命令使用比较语句格式。这些命令以相同的方式过滤服务并返回相同的输出。只是语法不同。

    Get-Service | Where-Object { $_.Status -eq "Stopped" }
    Get-Service | Where-Object Status -EQ "Stopped"

    示例2:根据工作集获取进程

    这些命令列出工作集大于 250 兆字节 (MB) 的进程。这些命令以相同的方式过滤进程并返回相同的输出。只是语法不同。

    Get-Process | Where-Object { $_.WorkingSet -GT 250MB }
    Get-Process | Where-Object WorkingSet -GT 250MB

    示例3:根据进程名称获取进程

    这些命令获取具有以字母 p 开头的 ProcessName 属性值的进程。 Match 运算符允许您使用正则表达式匹配。

    这些命令以相同的方式过滤进程并返回相同的输出。只是语法不同。

    Get-Process | Where-Object { $_.ProcessName -Match "^p.*" }
    Get-Process | Where-Object ProcessName -Match "^p.*"

    示例4:使用比较语句格式

    此示例演示如何使用 Where-Object cmdlet 的新比较语句格式。

    第一个命令使用比较语句格式。它不使用任何别名并包含每个参数的名称。

    第二个命令是比较命令格式的更自然的使用。该命令将 where 别名替换为 Where-Object cmdlet 名称,并省略所有可选参数名称。

    这些命令以相同的方式过滤进程并返回相同的输出。只是语法不同。

    Get-Process | Where-Object -Property Handles -GE -Value 1000
    Get-Process | where Handles -GE 1000

    示例5:根据属性获取命令

    此示例演示如何编写返回 true 或 false 或具有指定属性的任何值的项的命令。每个示例都显示命令的脚本块和比较语句格式。

    这些命令以相同的方式过滤输入并返回相同的输出。只是语法不同。

    # Use Where-Object to get commands that have any value for the OutputType
    # property of the command. This omits commands that do not have an OutputType
    # property and those that have an OutputType property, but no property value.
    Get-Command | Where-Object OutputType
    Get-Command | Where-Object { $_.OutputType }
    
    # Use Where-Object to get objects that are containers. This gets objects that
    # have the **PSIsContainer** property with a value of $True and excludes all
    # others.
    Get-ChildItem | Where-Object PSIsContainer
    Get-ChildItem | Where-Object { $_.PSIsContainer }
    
    # Finally, use the -not operator (!) to get objects that are not containers.
    # This gets objects that do have the **PSIsContainer** property and those
    # that have a value of $False for the **PSIsContainer** property.
    Get-ChildItem | Where-Object -Not PSIsContainer
    Get-ChildItem | Where-Object { !$_.PSIsContainer }

    示例 6:使用多个条件

    Get-Module -ListAvailable | Where-Object {
        ($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
    }

    此示例演示如何创建具有多个条件的 Where-Object 命令。

    此命令获取支持可更新帮助功能的非核心模块。该命令使用 Get-Module cmdlet 的 ListAvailable 参数来获取计算机上的所有模块。管道运算符 (|) 将模块发送到 Where-Object cmdlet,该 cmdlet 获取名称不以 Microsoft 或 PS,并具有 HelpInfoURI 属性值,该属性告诉 PowerShell 在哪里可以找到模块的更新帮助文件。 -and 逻辑运算符连接比较语句。

    该示例使用脚本块命令格式。逻辑运算符,例如 -and-or-not 仅在脚本块中有效。您不能在 Where-Object 命令的比较语句格式中使用它们。

    • 有关 PowerShell 逻辑运算符的详细信息,请参阅 about_Logical_Operators。
    • 有关可更新帮助功能的详细信息,请参阅 about_Updatable_Help。

    参数

    -CContains

    指示如果对象的属性值与指定值完全匹配,则此 cmdlet 从集合中获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object ProcessName -CContains "svchost"

    CContains 指的是值的集合,如果该集合包含与指定值完全匹配的项目,则为 true。如果输入是单个对象,PowerShell 会将其转换为一个对象的集合。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CEQ

    指示如果属性值与指定值相同,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CGE

    指示如果属性值大于或等于指定值,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CGT

    指示如果属性值大于指定值,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CIn

    指示如果属性值包含指定值,则此 cmdlet 获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object -Value "svchost" -CIn ProcessName

    CIn 类似于 CContains,只不过属性和值的位置相反。例如,以下陈述都是正确的。

    "abc", "def" -CContains "abc"
    "abc" -CIn "abc", "def"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CLE

    指示如果属性值小于或等于指定值,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CLike

    指示如果属性值与包含通配符 (*) 的值匹配,则此 cmdlet 获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object ProcessName -CLike "*host"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CLT

    指示如果属性值小于指定值,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CMatch

    指示如果属性值与指定的正则表达式匹配,则此 cmdlet 获取对象。此操作区分大小写。当输入是单个对象时,匹配的值将保存在$Matches自动变量中。

    例如:

    Get-Process | Where-Object ProcessName -CMatch "Shell"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CNE

    指示如果属性值与指定值不同,则此 cmdlet 获取对象。此操作区分大小写。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CNotContains

    指示如果对象的属性值与指定值不完全匹配,则此 cmdlet 获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object ProcessName -CNotContains "svchost"

    NotContainsCNotContains 引用值的集合,并且当集合不包含与指定值完全匹配的任何项目时为 true。如果输入是单个对象,PowerShell 会将其转换为一个对象的集合。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CNotIn

    指示如果属性值与指定值不完全匹配,则此 cmdlet 获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

    NotInCNotIn 运算符类似于 NotContainsCNotContains,只不过属性和值的位置相反。例如,以下陈述是正确的。

    "abc", "def" -CNotContains "Abc"
    "abc" -CNotIn "Abc", "def"
    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CNotLike

    指示如果属性值与包含通配符的值不匹配,则此 cmdlet 获取对象。此操作区分大小写。

    例如:

    Get-Process | Where-Object ProcessName -CNotLike "*host"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -CNotMatch

    指示如果属性值与指定的正则表达式不匹配,则此 cmdlet 获取对象。此操作区分大小写。当输入是单个对象时,匹配的值将保存在$Matches自动变量中。

    例如:

    Get-Process | Where-Object ProcessName -CNotMatch "Shell"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Contains

    指示如果对象的属性值中的任何项目与指定值完全匹配,则此 cmdlet 获取对象。

    例如:

    Get-Process | Where-Object ProcessName -Contains "Svchost"

    如果输入是单个对象,PowerShell 会将其转换为一个对象的集合。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IContains

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -EQ

    指示如果属性值与指定值相同,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IEQ

    位置:

    命名

    默认值:

    None

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    -FilterScript

    指定用于过滤对象的脚本块。将脚本块括在大括号 ({}) 中。

    参数名称 FilterScript 是可选的。

    类型 :

    ScriptBlock

    位置:

    0

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -GE

    指示如果属性值大于或等于指定值,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IGE

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -GT

    指示如果属性值大于指定值,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IGT

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -In

    指示如果属性值与任何指定值匹配,则此 cmdlet 获取对象。例如:

    Get-Process | Where-Object -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"

    如果输入是单个对象,PowerShell 会将其转换为一个对象的集合。

    如果对象的属性值是数组,PowerShell 使用引用相等来确定匹配。仅当 Property 参数的值和 Value 的任何值是同一对象实例时,Where-Object 才返回该对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IIn

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -InputObject

    指定要过滤的对象。您还可以通过管道将对象传送到 Where-Object

    当您将 InputObject 参数与 Where-Object 一起使用时,cmdlet 不会将命令结果通过管道传输到 Where-Object,而是将 InputObject 视为 作为单个对象。即使该值是命令结果的集合(例如 -InputObject (Get-Process)),情况也是如此。

    由于 InputObject 无法从数组或对象集合中返回单个属性,因此我们建议,如果您使用 Where-Object 来筛选对象集合,以查找符合以下条件的对象:如果定义的属性中有特定值,则可以在管道中使用 Where-Object,如本主题中的示例所示。

    类型 :

    PS对象

    位置:

    命名

    默认值:

    None

    必需的:

    False

    接受管道输入:

    True

    接受通配符:

    False

    -Is

    指示如果属性值是指定 .NET 类型的实例,则此 cmdlet 获取对象。将类型名称括在方括号中。

    例如,

    Get-Process | Where-Object StartTime -Is [DateTime]

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -IsNot

    指示如果属性值不是指定 .NET 类型的实例,则此 cmdlet 获取对象。

    例如,

    Get-Process | where StartTime -IsNot [DateTime]

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -LE

    指示如果属性值小于或等于指定值,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    ILE

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Like

    指示如果属性值与包含通配符 (*) 的值匹配,则此 cmdlet 获取对象。

    例如:

    Get-Process | Where-Object ProcessName -Like "*host"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    ILike

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -LT

    指示如果属性值小于指定值,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    ILT

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Match

    指示如果属性值与指定的正则表达式匹配,则此 cmdlet 获取对象。当输入是单个对象时,匹配的值将保存在$Matches自动变量中。

    例如:

    Get-Process | Where-Object ProcessName -Match "shell"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    IMatch

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -NE

    指示如果属性值与指定值不同,则此 cmdlet 获取对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    INE

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Not

    指示如果属性不存在或值为 $null$false,则此 cmdlet 获取对象。

    例如:

    Get-Service | Where-Object -Not "DependentServices"

    此参数是在 Windows PowerShell 6.1 中引入的。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -NotContains

    指示如果属性值中没有任何项目与指定值完全匹配,则此 cmdlet 获取对象。

    例如:

    Get-Process | Where-Object ProcessName -NotContains "Svchost"

    NotContains 指的是值的集合,如果该集合不包含与指定值完全匹配的任何项目,则为 true。如果输入是单个对象,PowerShell 会将其转换为一个对象的集合。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    INotContains

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -NotIn

    指示如果属性值与任何指定值都不完全匹配,则此 cmdlet 获取对象。

    例如:

    Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

    如果 Value 的值是单个对象,PowerShell 会将其转换为一个对象的集合。

    如果对象的属性值是数组,PowerShell 使用引用相等来确定匹配。仅当 Property 的值和 Value 的任何值不是同一对象实例时,Where-Object 才会返回该对象。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    INotIn

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -NotLike

    指示如果属性值与包含通配符 (*) 的值不匹配,则此 cmdlet 获取对象。

    例如:

    Get-Process | Where-Object ProcessName -NotLike "*host"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    INotLike

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -NotMatch

    指示当属性值与指定的正则表达式不匹配时,此 cmdlet 获取对象。当输入是单个对象时,匹配的值将保存在$Matches自动变量中。

    例如:

    Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    SwitchParameter

    别名:

    INotMatch

    位置:

    命名

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Property

    指定输入对象的属性名称。该属性必须是实例属性,而不是静态属性。这是一个位置参数,因此名称 Property 是可选的。

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    String

    位置:

    0

    默认值:

    None

    必需的:

    True

    接受管道输入:

    False

    接受通配符:

    False

    -Value

    指定属性值。参数名称是可选的。当与以下比较参数一起使用时,此参数接受通配符:

    • 点赞
    • CNotLike
    • 喜欢
    • 不喜欢

    此参数是在 Windows PowerShell 3.0 中引入的。

    类型 :

    PS对象

    位置:

    1

    默认值:

    None

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    True

    输入

    PSObject

    您可以通过管道将任何对象传递给此 cmdlet。

    输出

    对象

    此 cmdlet 返回输入对象集中选定的项目。

    笔记

    PowerShell 包含 Where-Object 的以下别名:

    • 所有平台:

        ?
      where

      从 Windows PowerShell 4.0 开始,添加了 WhereForEach 方法以与集合一起使用。

      您可以在这里阅读有关这些方法的更多信息 about_arrays

      您需要 登录账户 后才能发表评论

      取消回复欢迎 发表评论:

      关灯