PowerShell:使用Select-String在对象列表中快速查找字符串
跨平台简便查找PowerShell别名对象的方法
针对你遇到的问题,这里提供两种跨平台、无需依赖外部工具且不要求提前知晓属性名的简便实现方法:
方法1:直接管道命令实现
通过遍历对象的所有属性值进行匹配,一行命令完成:
Get-Alias | Where-Object { $_.PSObject.Properties.Value -match 'Get-' }
- 原理:利用
$_.PSObject.Properties获取每个别名对象的所有属性,检查任意属性的值是否包含目标字符串Get- - 优势:完全基于PowerShell原生语法,跨Windows、Linux、macOS的PowerShell Core都能运行;保留对象完整性,可后续继续操作;无需提前指定属性名,通用性强。
方法2:封装为自定义函数(适合高频使用)
如果需要频繁执行这类查找,可以封装成一个简短的函数,进一步简化调用:
function Find-Object { param( [Parameter(ValueFromPipeline)]$InputObject, [string]$Pattern ) process { if ($InputObject.PSObject.Properties.Value -match $Pattern) { $InputObject } } }
调用时只需:
Get-Alias | Find-Object -Pattern 'Get-'
这个函数不仅适用于别名对象,其他任意PowerShell对象列表的字符串查找都能复用。
内容的提问来源于stack exchange,提问作者Dmitrij Drandarov
相关产品推荐
相关产品推荐

