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

PowerShell按tags生成指定结构哈希表的代码问题排查

问题排查与解决方案

原代码问题

原代码没实现「按标签分组构建哈希表」的核心需求:

  • 只是把tags和设备数据塞进数组,得到的是扁平结构,不是键值对分组的哈希表
  • 后续的Sort-Object无法对这种扁平数组按标签排序,因为数组元素不具备tags属性

正确实现代码

# 初始化空哈希表用于分组存储
$BillData = @{}

$response.data | ForEach-Object {
    # 清理标签格式(去掉前后的大括号)
    $cleanTag = $_.tags -replace '[{}]', ''
    # 拼接成要求的设备信息字符串
    $deviceStr = "$cleanTag $($_.name) $($_.total_bytes)"

    # 按标签分组:已有标签则追加,无则新建
    if ($BillData.ContainsKey($cleanTag)) {
        $BillData[$cleanTag] += ",`n            $deviceStr"
    }
    else {
        $BillData[$cleanTag] = $deviceStr
    }
}

# 按标签排序并输出目标格式
$BillData.GetEnumerator() | Sort-Object Key | ForEach-Object {
    "$($_.Key) ($($_.Value))"
}

代码说明

  1. 哈希表初始化:用@{}创建空哈希表,确保能以标签为键,批量存储对应设备的信息
  2. 数据处理逻辑:
    • 清理原数据中标签的大括号(比如把{All Island}转成All Island)
    • 按要求拼接设备信息字符串
    • 检查哈希表中是否存在当前标签:存在就追加新设备信息(带换行和缩进),不存在则新增键值对
  3. 格式化输出:取出哈希表的所有键值对,按标签名称排序后,拼接成目标格式输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:25:26