- PowerShell功能特点
- PowerShell历史
- PowerShell和命令提示符的区别
- PowerShell与Bash Shell的区别
- PowerShell以管理员身份运行
- Windows PowerShell ISE
- PowerShell核心
- 创建并运行PowerShell脚本
- PowerShell注释
- PowerShell Cmdlet
- PowerShell基本cmdlet命令
- PowerShell Get-childItem命令
- PowerShell Get-Item命令
- PowerShell Get-Location命令
- PowerShell set-item命令
- PowerShell set-location命令
- PowerShell new-item命令
- PowerShell copy-item命令
- PowerShell move-item命令
- PowerShell remove-item命令
- PowerShell rename-item命令
- PowerShell add-content命令
- PowerShell clear-content
- PowerShell get-content命令
- PowerShell get-date命令
- PowerShell set-content命令
- PowerShell out-file命令
- PowerShell write-host命令
- PowerShell get-command命令
- PowerShell invoke-command命令
- PowerShell get-help命令
- PowerShell start-process命令
- PowerShell test-path命令
- PowerShell foreach-object命令
- PowerShell sort-object命令
- PowerShell where-object命令
- PowerShell变量
- PowerShell自动变量
- PowerShell首选项变量
- PowerShell数组
- PowerShell哈希表
- PowerShell运算符
- PowerShell算术运算符
- PowerShell赋值运算符
- PowerShell比较运算符
- PowerShell逻辑运算符
- PowerShell重定向运算符
- PowerShell拆分和合并运算符
- PowerShell if语句
- PowerShell if-else语句
- PowerShell else-if语句
- PowerShell Switch语句
- PowerShell Do-While循环
- PowerShell for循环
- PowerShell ForEach循环
- PowerShell While循环
- PowerShell Continue和Break
- PowerShell字符串
- PowerShell函数
- PowerShell Try Catch Finally
PowerShell where-object命令
PowerShell中的Where-Object
根据对象的属性值从集合中选择对象。使用PowerShell 3.0的启动版,可以通过以下两种不同的方式构造Where-Object
cmdlet:
- 比较语句: 随着PowerShell 3.0的启动,我们可以将比较运算符添加为
Where-Object
命令中的参数。 - 脚本块: 可以使用脚本块来指定属性的名称和值以及比较运算符。
Where-Object
cmdlet返回脚本块语句为true
的所有对象。
语法
语法1
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] [-EQ] [<CommonParameters>]
语法2
Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]
语法3
Where-Object [-Property] <string> [[-Value] <Object>] -Match [-InputObject <psobject>] [<CommonParameters>]
语法4
Where-Object [-Property] <string> [[-Value] <Object>] -CEQ [-InputObject <psobject>] [<CommonParameters>]
语法5
Where-Object [-Property] <string> [[-Value] <Object>] -NE [-InputObject <psobject>] [<CommonParameters>]
语法6
Where-Object [-Property] <string> [[-Value] <Object>] -CNE [-InputObject <psobject>] [<CommonParameters>]
语法7
Where-Object [-Property] <string> [[-Value] <Object>] -GT [-InputObject <psobject>] [<CommonParameters>]
语法8
Where-Object [-Property] <string> [[-Value] <Object>] -CGT [-InputObject <psobject>] [<CommonParameters>]
语法9
Where-Object [-Property] <string> [[-Value] <Object>] -Like [-InputObject <psobject>] [<CommonParameters>]
语法10
Where-Object [-Property] <string> [[-Value] <Object>] -CLike [-InputObject <psobject>] [<CommonParameters>]
参数
以下是此cmdlet中使用的参数:
-Property - 此参数用于指定对象属性的名称。它是可选的,并在Windows PowerShell的3.0版本中引入。
-Value - 此参数用于指定属性的值。与比较参数一起使用时,它接受通配符(*
)。它也是在PowerShell 3.0版中引入的。
-InputObject - 此参数用于指定要过滤的对象。我们还可以将对象通过管道传递给Where-Object cmdlet。
-EQ - 如果属性的值与指定的值相同,则Where-Object
cmdlet使用此参数获取对象。
-FilterScript - 此参数用于指定用于过滤对象的脚本块。必须将脚本块放在大括号{}
中。
-FilterScript - 如果属性的值与给定的正则表达式匹配,则Where-Object
cmdlet使用此参数获取对象。
-CEQ - 如果属性的值与指定的值相同,则Where-Object
cmdlet使用此参数获取对象。
-NE - 如果属性的值与指定的值不同,则Where-Object
cmdlet使用此参数获取对象。
-CNE - 如果属性的值与指定的值不同,则Where-Object
cmdlet使用此参数获取对象。此操作区分大小写。
-GT - 如果属性的值大于给定值,则Where-Object cmdlet使用此参数获取对象。
-CGT - 如果属性的值大于给定值,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-LT - 如果属性的值小于给定值,则Where-Object cmdlet使用此参数获取对象。
-CLT - 如果属性的值小于给定值,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-GE - 如果属性的值大于或等于给定值,则Where-Object cmdlet使用此参数获取对象。
-CGE - 如果属性的值大于或等于给定值,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-LE - 如果属性的值小于或等于给定值,则Where-Object cmdlet使用此参数获取对象。
-CLE - 如果属性的值小于或等于给定值,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-Like - 如果属性的值与包含通配符的值匹配,则Where-Object cmdlet使用此参数获取对象。
-CLike - 如果属性的值与包含通配符的值匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-NotLike - 如果属性的值与包含通配符的值不匹配,则Where-Object cmdlet使用此参数获取对象。
-CNotLike - 如果属性的值与包含通配符的值不匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-CMatch - 如果属性的值与给定的正则表达式匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写
-NotMatch - 如果属性的值与给定的正则表达式不匹配,则Where-Object cmdlet使用此参数获取对象。如果输入为标量,则匹配的值将保存或存储在$Matches自动变量中。
-CNotMatch - 如果属性的值与给定的正则表达式不匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-Contains - 如果对象的属性值与给定值匹配,则Where-Object cmdlet使用此参数从集合中获取对象。
-CContains - 如果对象的属性值中的项与给定值匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-NotContains - 如果对象的属性值中的任何项均与给定值不匹配,则Where-Object cmdlet使用此参数获取对象。
-CNotContains - 如果对象的属性值中的项与给定值不匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-In - 如果属性的值与任何给定值匹配,则Where-Object cmdlet使用此参数获取对象。
-CIn - 如果属性的值与任何给定值匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-NotIn - 如果属性的值与任何给定值都不匹配,则Where-Object cmdlet使用此参数获取对象。
-CNotIn - 如果属性的值与任何给定值都不匹配,则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-Is - 如果属性的值是给定.NET Framework类型的实例,则Where-Object cmdlet使用此参数获取对象。您必须将类型的名称括在方括号中。
-IsNot - 如果属性的值不是给定.NET Framework类型的实例,则Where-Object cmdlet使用此参数获取对象。
示例
示例1: 获取停止的服务
此示例中的两个命令都获取当前停止的所有服务的列表。 第一个命令使用脚本块的格式,第二个命令使用比较语句的格式。
示例2: 根据进程名称获取进程
PS C:\> get-service | where-object {$_.Name -Match "^Wp.*"} Status Name DisplayName ------ ---- ----------- Stopped WpcMonSvc 家长控制 Stopped WPDBusEnum Portable Device Enumerator Service Running WpnService Windows 推送通知系统服务 Running WpnUserService_... Windows Push Notifications User Ser... Stopped wpscloudsvr WPS Office Cloud Service PS C:\> get-service | where-object {$_.DisplayName -Match "^Wp.*"} Status Name DisplayName ------ ---- ----------- Stopped wpscloudsvr WPS Office Cloud Service
本示例中的命令获取以Wp
字母开头的服务的名称。 -Match
参数后面使用正则表达式。
下一篇:PowerShell变量
扫描二维码
程序员编程王