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

PowerShell电池容量计算报错:System.Object[]无op_Division方法

解决PowerShell中电池容量除法运算的数组类型错误

问题原因

你遇到的错误是因为$r和$d是数组类型(System.Object[]),而非单个数值类型。哪怕单独输出时看起来是单个值,实际是包含单个元素的数组,PowerShell无法直接对数组执行除法运算。

解决方案步骤

1. 验证变量类型

先执行以下命令确认变量类型:

$r.GetType().FullName
$d.GetType().FullName

输出会显示System.Object[],证明变量是数组。

2. 提取数组中的单个数值

直接取数组的第一个元素(适配单电池系统):

$r = $r[0]
$d = $d[0]

3. 从根源避免数组问题(推荐)

在获取电池容量时,直接获取单个对象的属性,而非返回整个集合的属性数组。示例代码:

# 获取第一个电池对象(适配单电池场景)
$battery = Get-CimInstance -ClassName Win32_Battery | Select-Object -First 1
# 直接获取单个数值类型的容量值
$remaining = $battery.RemainingCapacity
$designed = $battery.DesignedCapacity
# 计算占比并格式化输出
$ratio = ($remaining / $designed) * 100
Write-Host "电池剩余容量占比:$([math]::Round($ratio, 2))%"

4. 执行除法运算

修正变量类型后,再执行$remaining / $designed即可正常计算,得到的小数乘以100就是百分比占比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:01:55