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

PowerShell筛选对象集合freeGBonC属性小于指定值结果异常问题

异常原因
  • freeGBonC字段为字符串类型而非数值类型,且使用逗号作为小数点分隔符
  • PowerShell中字符串与整数比较时,会自动将整数转为字符串后按字符编码逐位比较:整数6会被转为字符串"6",所有freeGBonC的首字符为1、2、3,编码值均小于"6",因此所有行都满足-lt 6的条件,-gt 6自然无匹配结果。
修复方法

筛选前先将freeGBonC转换为数值类型即可正常比较:

  1. 系统区域默认支持逗号作为小数点时,直接转换即可:
$res | Where-Object { [double]$_.freeGBonC -lt 6 }
  1. 系统区域不识别逗号作为小数点时,显式指定兼容逗号小数点的区域完成转换:
$res | Where-Object { [double]::Parse($_.freeGBonC, [Globalization.CultureInfo]'de-DE') -lt 6 }

如果$res是从CSV文件导入生成的,也可以在导入阶段直接完成类型转换,避免后续每次操作都重复处理:

$res = Import-Csv .\你的存储文件路径.csv | ForEach-Object {
    $_.freeGBonC = [double]::Parse($_.freeGBonC, [Globalization.CultureInfo]'de-DE')
    $_
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:45:02