我试图通过使用where-object
从注册表中获取一些项目,我只能过滤一个项目但是多个项目...我的脚本有什么问题吗?
此代码仅适用于一个项目
Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ |
ForEach-Object {Get-ItemProperty $_.pspath} |
Where-Object {
$_.Displayname -like 'adobe air'
} |
Select-Object DisplayName,DisplayVersion |
Sort-Object DisplayName |
Out-GridView
但如果我将其设置为过滤多个项目,则会运行,结束,没有任何结果......任何想法为何?
Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ |
ForEach-Object {Get-ItemProperty $_.pspath} |
Where-Object {
$_.Displayname -like 'adobe air' -and
$_.Displayname -like 'Java*' -and
$_.Displayname -like 'TeamViewer*'
} |
Select-Object DisplayName,DisplayVersion |
Sort-Object DisplayName |
Out-GridView
如果我使用
Where-Object {
$_.Displayname -like "Security*"
}
它只给我3个项目匹配Security
,而不是全部,为什么?
答案 0 :(得分:2)
问题在于您输入的逻辑。-and
表示两者都必须为真,请改用-or
。