首页 > 解决方案 > 在 Powershell 的“Where”中使用 Or 语句

问题描述

我正在制作一个脚本来查找名称类似于“Microsoft Office S*”或“Microsoft Office P*”的所有程序

我在搜索其中一个时使代码正常工作,但不是同时搜索两者。下面的一些例子:

作品

get-wmiobject Win32_Product | Where Name -like "Microsoft Office S*"| Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

作品

get-wmiobject Win32_Product | Where Name -like "Microsoft Office S*"| Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

不工作

get-wmiobject Win32_Product | Where Name -like ("Microsoft Office S*" -or "Microsoft Office P*")| Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

不工作

get-wmiobject Win32_Product | Where Name -like ("Microsoft Office S*") -or Name -like ("Microsoft Office S*")| Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

标签: powershell

解决方案


我相信这里的问题不在于使用Where-Object脚本块。如果您将查询改写为以下内容,您的问题应该会消失。

Get-WmiObject Win32_Product | Where-Object {$_.Name -like "Microsoft Office S*" -or $_.Name -like "Microsoft Office P*"}

推荐阅读