我有以下情况:
我正在测试几台安装了 Windows 8.1 的笔记本电脑。其中一项测试是测量电池的续航时间。对于这项任务,我使用 PeaceKeeper 或 PowerMark 等基准测试。
我还想测量电池电量耗尽后需要多长时间才能充满电。有什么想法吗?
答案1
如果您不想使用外部工具,您可以利用 WMI 查询和 WMI 事件的强大功能(双关语)。从命令行运行的简单查询:
wmic path win32_battery get EstimatedChargeRemaining
将为您提供估计电量。现在,要获得重复读数,您可以将其放在定时循环中,但还有一种更好(或更花哨 :-) 的方法:注册一个电池事件和处理程序 - 这里是在 Powershell 中完成的(启动 Powershell 并粘贴/执行这两个命令):
$action={get-wmiobject -computername localhost -Query "Select * from Win32_Battery"|% {write-host battery charge: ($_.EstimatedChargeRemaining) time: $(get-date)}}
Register-WMIEvent -query "SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_Battery'" -messageData "battery charge" -sourceIdentifier "battery" -action $action
每次发生事件时,Powershell 控制台都会产生一行输出。以下是我的笔记本电脑的输出:
电池电量:67 时间:2014-12-11 17:59:53
电池电量:68 时间:2014-12-11 18:00:23 电池电量
:69 时间:2014-12-11 18:01:23 电池
电量:70 时间:2014-12-11 18:01:53 电池
电量:71 时间:2014-12-11 18:02:53
电池电量:72 时间:2014-12-11 18:03:23
电池电量:73 时间:2014-12-11 18:04:23 电池
电量:74 时间:2014-12-11 18:05:14
电池电量:75 时间:2014-12-11 18:06:04
电池电量:76 时间:2014-12-11 18:06:44
我的简单操作只是一个控制台消息,但你当然可以做任何你喜欢的事情 - 例如将其写出到文件
(注意:我认为 WMI 计数器达到 99,在状态栏上显示为 100%/已满 - 因此它在显示屏“后面”有 1%)
答案2
电池消耗器支持创建电池充电图。
它还会在放电基准测试期间每 30 秒记录一次当前电池容量。我想它在创建充电图时也会记录此信息。
以下是出院日志的片段:
日志开始时间:13-01-2014 20:15:43 =============================================================================== [20:16:13] 36680 0 [20:16:43] 36630 0 [20:17:13] 36590 0 [20:17:43] 36530 0 [20:18:13] 36490 0 [20:18:43] 36430 0 [20:19:13] 36370 0 [20:19:43] 36320 0 [20:20:13] 36280 0 [20:20:43] 36220 0 [20:21:13] 36170 0 [20:21:43] 36110 0 ... [17:52:38] 2080 0 [17:53:08] 2250 0 [17:53:38] 2410 0 =============================================================================== 日志结束时间:14-01-2014 17:53:45
要打开它BEG
生成的文件,将它们拖放到 Battery Eater 可执行文件中。此外,由于这是相当旧的软件,您可能需要在兼容模式下运行它。