You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell找出未包含指定值的变量名称?

筛选不含指定值的PowerShell变量名称

可行方案

方法一:通过Get-Variable匹配变量名

直接获取符合命名规则的变量,筛选其值不含"Pears"的变量名:

Get-Variable -Name fruit* | Where-Object { $_.Value -notcontains "Pears" } | Select-Object -ExpandProperty Name

方法二:手动构造变量名与值的映射集合

如果变量命名没有统一规则,可以手动定义包含名称和值的对象集合,再进行筛选:

# 构建变量名和对应值的自定义对象
$varCollection = [PSCustomObject]@{ Name = 'fruit'; Value = $fruit },
                 [PSCustomObject]@{ Name = 'fruit2'; Value = $fruit2 },
                 [PSCustomObject]@{ Name = 'fruit3'; Value = $fruit3 }

# 筛选并提取变量名
$varCollection | Where-Object { $_.Value -notcontains "Pears" } | Select-Object -ExpandProperty Name

原代码问题说明

你之前的代码直接将变量的**值(数组)**传入管道,Where-Object筛选出的是不含"Pears"的数组本身,后续的Select $_只是输出该数组的元素,自然无法得到变量名。要获取变量名称,必须让管道中同时携带变量的名称和对应的值,这样才能在筛选条件满足后提取出变量名。

内容的提问来源于stack exchange,提问作者IanB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:40:26