[玩转系统] PowerShell 其中对象包含示例
作者:精品下载站 日期:2024-12-14 05:08:08 浏览:14 分类:玩电脑
PowerShell 其中对象包含示例
PowerShell Where-Object
cmdlet 允许您根据对象的属性过滤对象。在本 PowerShell 教程中,我们将重点介绍 Where-Object
cmdlet 中的 Contains
运算符以及如何使用它。我还将向您展示 PowerShellWhere-Object contains 示例。
在 PowerShell 中,Where-Object cmdlet 通常用于根据对象的属性过滤对象。要检查属于集合(例如数组)的属性是否包含特定值,请使用 -contains 运算符。例如,要查找加载了某个模块的所有进程,您可以使用 Get-Process | Where-Object { $_.Modules -contains ‘ModuleName’ }.
PowerShell 对象包含的位置
Contains
运算符与 PowerShellWhere-Object 一起使用来查找集合中包含特定属性值的对象。请务必注意,Contains
不同于支持通配符比较的 -like
运算符,或使用正则表达式的 -match
。
Contains
的一个常见用例是当您处理对象的单个属性中的值的集合或数组时。假设您想要查找加载了某个模块的所有进程。你可以这样做:
Get-Process | Where-Object { $_.Modules -Contains 'ModuleName' }
在此示例中,Modules
是一个属性,其中包含每个进程已加载的所有模块的集合。 Contains
运算符检查“ModuleName”是否在该集合中。
这是一个例子:
假设您有一个文件目录,并且您想要查找名称中包含特定字符串的所有文件。您可以在Where-Object 中使用包含包含的过滤器。
Get-ChildItem | Where-Object { $_.Name -Contains 'Report' }
此命令检索当前目录中的所有项目,并根据其名称是否包含字符串“Report”来过滤它们。
在 PowerShell 中的Where-Object 中使用Contains
时,请记住它区分大小写,并且它会在集合中查找完全匹配的内容。如果您需要不区分大小写的搜索或部分匹配,则可能需要考虑使用带有通配符的 -like
或带有正则表达式的 -match
。
还值得注意的是,Contains
与 In
不同,后者检查单个值是否在集合中。语法和用例不同:
'ServiceName' -In (Get-Service).Name
这会检查“ServiceName”是否在所有服务的名称集合中。
PowerShell 其中对象包含字符串
使用 PowerShell 时,您可能需要根据字符串属性是否包含特定子字符串来筛选对象。这就是 Where-Object
cmdlet 发挥作用的地方,它允许您筛选对象集合并挑选出符合特定条件的对象。
然而,在将术语“包含”与 Where-Object
一起使用时,存在一个常见的误解。在 PowerShell 中,-contains
运算符用于检查集合(数组)中是否存在值,而不是用于检查字符串属性中的子字符串。要检查对象的字符串属性是否包含特定子字符串,您通常可以使用带有通配符的 -like
运算符,或使用正则表达式的 -match
运算符。
以下是使用 Where-Object
与 -like
运算符在另一个字符串中查找字符串的示例:
Get-Process | Where-Object { $_.ProcessName -like '*notepad*' }
在此示例中,我们过滤 Get-Process
的输出,以仅显示 ProcessName
属性包含子字符串“notepad”的进程。星号 (*
) 是通配符,可匹配“记事本”两侧的零个或多个字符。
您可以在下面的屏幕截图中看到输出:
如果您需要执行不区分大小写的子字符串搜索,则 -like
和 -match
在 PowerShell 中本质上是不区分大小写的。不过,您可以使用 -ccontains
、-clike
或 -cmatch
运算符进行区分大小写的比较。
例如,使用 -match
在另一个字符串中查找一个字符串:
Get-Service | Where-Object { $_.DisplayName -match 'remote' }
这会将服务过滤到 DisplayName
中包含“remote”的服务。
请务必注意,-match
使用正则表达式,这是功能强大的模式匹配工具,超出了简单的子字符串搜索范围。这可能非常有用,但也需要对正则表达式语法有一定的了解才能有效使用。
总之,当您想要根据字符串属性是否包含特定子字符串来过滤 PowerShell 中的对象时,您应该使用 -like
或 -match
,而不是 -包含
。 -contains
运算符适用于集合,而不是字符串。
PowerShell where-object 不包含
在 PowerShell 中,当您想要过滤属性不包含特定值的对象时,您可能会考虑使用“不包含”运算符。但是,PowerShell 没有用于字符串的 -notcontains
运算符。相反,您需要使用 -notlike
运算符或 -notmatch
来否定字符串匹配,这两个运算符都可以与 Where-Object
结合使用 cmdlet。
使用-notlike
-notlike
运算符与 Where-Object
一起使用,以排除字符串属性与指定模式(可以包含通配符)不匹配的对象。这是一个例子:
Get-Service | Where-Object { $_.DisplayName -notlike '*SQL*' }
此命令将返回 DisplayName
不包含子字符串“SQL”的所有服务。
使用-notmatch
或者,-notmatch
使用正则表达式进行模式匹配,并可用于执行更复杂的否定:
Get-Process | Where-Object { $_.ProcessName -notmatch '^conhost$' }
上述命令将返回 ProcessName
与“conhost”不完全匹配的进程列表。 ^
和 $
分别是字符串开头和结尾的正则表达式锚点。
处理集合
如果您处理的是集合(数组)属性,并且想要排除集合中包含特定值的对象,则可以使用 -notcontains
。这是 PowerShell 中 -notcontains
的正确用法:
$myArray = 'apple', 'banana', 'cherry'
$myArray -notcontains 'orange' # This returns True because 'orange' is not in the array
但是,当使用 Where-Object
进行过滤时,您将执行如下操作:
$myObjects | Where-Object { $_.SomeCollectionProperty -notcontains 'SomeValue' }
在此示例中,$myObjects
是一个对象集合,每个对象都有一个属性 SomeCollectionProperty
,该属性本身就是一个集合。 -notcontains
运算符用于过滤掉 SomeCollectionProperty
不包含“SomeValue”的对象。
当您想要根据字符串属性中是否存在子字符串来过滤对象时,应将 -notlike
或 -notmatch
与 Where-Object
结合使用> 在 PowerShell 中。处理集合属性时,如果您想要排除集合中包含特定值的对象,则可以使用 -notcontains
。
PowerShell where-object 不包含
在 PowerShell 中,当您需要根据集合属性(例如数组)中是否缺少特定值来过滤对象时,可以将 -notcontains
运算符与 Where 结合使用-Object
PowerShell 中的 cmdlet。但是,如果您要检查字符串属性是否不包含特定子字符串,则需要使用 -notlike
或 -notmatch
运算符,如 -notcontains
不适用于字符串包含检查。
对字符串使用 -notlike
-notlike
运算符用于字符串比较,您希望返回与特定模式不匹配的对象。此模式可以包含通配符,例如星号 (*
),它代表任意数量的字符。这是一个例子:
Get-ChildItem | Where-Object { $_.Name -notlike '*temp*' }
此命令将返回 Name
属性不包含子字符串“temp”的所有项目。
对字符串使用 -notmatch
-notmatch
运算符使用正则表达式进行模式匹配,用于排除字符串属性与指定正则表达式模式匹配的对象。这是一个例子:
Get-Process | Where-Object { $_.ProcessName -notmatch 'chrome' }
此命令将返回ProcessName
不包含子字符串“chrome”的所有进程。
对集合使用 -notcontains
处理集合属性时,-notcontains
运算符是合适的。它检查集合是否不包含特定值。例如:
$fruitList = 'apple', 'banana', 'cherry'
$fruitList -notcontains 'grape' # This returns True because 'grape' is not in the list
在 Where-Object
上下文中,您可以使用 -notcontains
过滤掉集合类型属性不包含特定值的对象:
$myObjects | Where-Object { $_.FruitList -notcontains 'grape' }
在此示例中,$myObjects
可能是一个对象集合,每个对象都有一个属性 FruitList
,该属性是表示水果的字符串集合。 -notcontains
运算符用于仅返回 FruitList
不包含字符串“grape”的对象。
当您想要在 PowerShell 中过滤掉字符串属性不包含特定子字符串的对象时,您应该使用 -notlike
或 -notmatch
。当您需要根据集合属性中缺少值来排除对象时,请使用 -notcontains
。
PowerShell where-object 包含示例
让我们看一下与 PowerShell where-object contains 相关的两个示例。
示例 1:使用 -contains 过滤数组
假设您有一个数字数组,并且您想找出该数组是否包含特定数字:
$numbers = 1, 2, 3, 4, 5
$numbers -contains 3
这将返回 True
,因为数字 3 在数组 $numbers
中。
示例 2:过滤具有包含特定值的属性的对象
如果您有一个带有数组属性的自定义对象,并且您希望根据数组是否包含特定值来过滤这些对象,则可以在 Where- 中使用
像这样的块:-contains
对象
$myObjects | Where-Object { $_.PropertyArray -contains 'Value' }
在此示例中,$myObjects
可能是对象的集合,而 PropertyArray
是这些对象的属性,它是一个数组。该命令过滤 PropertyArray
包含字符串“Value”的对象。
结论
带有 Contains
运算符的 Where-Object
cmdlet 在 PowerShell 中非常有用,可根据对象的属性内容过滤对象。 此外,我们还讨论了以下主题:
- PowerShell 对象包含位置
- PowerShell 其中对象包含字符串
- PowerShell where-object 不包含
- PowerShell where-object 不包含
- PowerShell where-object 包含示例
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag