yeg
2026-09-30 5b94409f3bc01622ba1eba570dfa347c62266df9
refs
用户 yeg <1347747024@qq.com>
星期三, 九月 30, 2026 11:21 +0800
提交者 yeg <1347747024@qq.com>
星期三, 九月 30, 2026 11:21 +0800
提交5b94409f3bc01622ba1eba570dfa347c62266df9
目录 3b91b76570cfc74120827636b5e271330e4cbbe7 目录 | zip | gz
parent b78295e8da96c3e5e76befeef9582ce5273dbb74 查看 | 对比
修 22 所取数程序只返回一行结果时被 PowerShell 拆掉一层的问题

现场症状:活跃库探到 17 个,但"扫过 0 张通道表"。原因是 Invoke-Query 返回集合时
PowerShell 会拆一层:查询只返回一行时,调用方 foreach 拿到的不是"行",而是那一行的
列值本身——$row[0] 于是变成字符串首字符(Ws16_IV_0 -> W),表名正则匹配不上,
通道表被全部跳过。

这个坑不只影响列表:正常情况每个通道每分钟只有一行新数据,数据行同样会被压扁,
推上去的行会是错的。修法是在 Invoke-Query 里用逗号包一层返回(return ,$rows)。

本地用桩验证:单行结果修复后 $row[0] 得到完整表名;一行都没扫到时日志会念出库名,
便于现场判断是不是库列表不对。
1个文件已修改
11 ■■■■■ 已修改文件
scripts/j22-collector.ps1 11 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史