gpt4 book ai didi

powershell - PowerShell中使用WMI的简单逻辑语句

转载 作者:行者123 更新时间:2023-12-02 23:48:11 26 4
gpt4 key购买 nike

在PowerShell中,我输入以下语句:

$var = Get-WmiObject win32_product | select-object name

if ($var.name -like 'adobe') {write-host '123'}

该变量可以很好地存储已安装产品的列表。但是,我的 if不会捕获任何内容。执行时,我没有输出或错误。如果我使用类似 Get-Process的东西,但是不使用 Get-WmiObject,这可以工作。

最佳答案

-like运算符是通配符模式匹配运算符。它返回与您提供的表达式匹配的内容。使用*作为通配符。因此,您将使用:

if ($var.name -like '*adobe*') {write-host '123'}

更新-像这样访问集合中的name属性仅在PowerShell v3中对我有效。对于PowerShell v2,我认为您需要做一些不同的事情。我建议创建一个字符串数组,而不是像这样的PsCustomObjects集合( -ExpandProperty参数完成工作):
$var = get-wmiobject win32_product | ? {$_.Name} | select-object -Expand name

然后在不使用name属性的情况下执行if语句:
if ($var -like '*adobe*') {write-host '123'}

如果您安装了名称为adobe的东西,它将执行IF块。

关于powershell - PowerShell中使用WMI的简单逻辑语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com