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

PowerShell中处理数据与排序结果:筛选时长超30天的NAME并存入数组

PowerShell 筛选AGE大于30天的NAME到数组解决方案

你之前使用的Select-Object用于提取指定属性列、Sort-Object用于排序,均不具备按条件过滤数据的能力,需要搭配Where-Object实现筛选逻辑。


操作步骤

1. 结构化数据场景($output为PowerShell标准对象集合,绝大多数场景适用)

直接执行以下命令即可得到存储符合条件NAME的数组:

$nameArray = $output | Where-Object { [int]($_.AGE -replace 'd$', '') -gt 30 } | Select-Object -ExpandProperty NAME

命令各部分说明:

  • Where-Object { [int]($_.AGE -replace 'd$', '') -gt 30 }:过滤逻辑,先移除AGE字段末尾的d字符,转换为整数后判断是否大于30
  • Select-Object -ExpandProperty NAME:直接提取所有符合条件条目的NAME值,拼接为一维数组

执行完成后直接调用$nameArray即可查看结果。

2. 纯文本返回场景($output为命令返回的原始字符串)

如果你的$output是直接捕获的命令输出纯文本,需要先将其转换为结构化对象再执行过滤:

# 先将纯文本转换为PS自定义对象
$structuredOutput = $output | Where-Object { $_ -notmatch '^NAME\s+STATUS\s+AGE' -and $_ -notmatch '^\s*$' } | ForEach-Object {
    $segments = $_ -split '\s+', 3
    [PSCustomObject]@{
        NAME   = $segments[0].Trim()
        STATUS = $segments[1].Trim()
        AGE    = $segments[2].Trim()
    }
}
# 再执行过滤获取NAME数组
$nameArray = $structuredOutput | Where-Object { [int]($_.AGE -replace 'd$', '') -gt 30 } | Select-Object -ExpandProperty NAME

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:15:05