1
0

More than 3 years have passed since last update.

ノートPCのバッテリーの劣化度合いを調べるスクリプト

Last updated at Posted at 2021-02-16

はじめに

バッテリーは使い続けると徐々に性能が劣化していき、満充電時の最大容量が低下していきます。
ノートPCのバッテリーも例外ではなく、使い続けると徐々に劣化していきます。

Windowsの場合、このようなバッテリーの情報はpowercfgコマンドで取得できると知ったので、今回はバッテリーの劣化度合いを調べるスクリプトをPowerShellで作ってみました。

作成したスクリプト

  • powercfgコマンドの実行結果は、デフォルトだとコマンドの結果はHTMLとして返されますが、解析しやすいXML形式で取得しているのがポイントです。
  • 基本的に「1つのノートPCに、バッテリーは1つ」と仮定してXMLを解析しています。
    • そもそも、バッテリーを複数持つノートPCは存在するのでしょうか?
  • バッテリーの劣化度合いは、(設計時の容量-満充電時の容量) / 設計時の容量 * 100で計算しています。
  • また、powercfgコマンドの実行結果を一旦ファイルとして出力しているため、最後に作成したファイルを削除しています。
battery_report.ps1
# ------------------------------------------------------------------------------
# ノートPCのバッテリーの劣化度合いを見るためのスクリプト。
# ------------------------------------------------------------------------------

# powercfgコマンドの実行結果の一時保存先。
$TEMP_FILE = './battery_report.xml'

# powercfgコマンドを実行して、XML形式で実行結果を取得する。
# powercfgコマンド実行時のメッセージが標準出力されないように、パイプでOut-Nullに渡している。
Write-Host 'ノートPCのバッテリーの消耗具合を確認します...'
powercfg /batteryreport /xml /output $TEMP_FILE | Out-Null

# XMLを解析して、設計時の容量(DESIGN CAPACITY)と満充電時の容量(FULL CHARGE CAPACITY)を取得する。
# バッテリーは1つしか存在しないと仮定して、Batteries.FirstChildで取得している。
$battery_xml = [xml](Get-Content $TEMP_FILE)
$design_capacity = $battery_xml.BatteryReport.Batteries.FirstChild.DesignCapacity
$full_charge_capacity = $battery_xml.BatteryReport.Batteries.FirstChild.FullChargeCapacity

$attenuation_rate = ($design_capacity - $full_charge_capacity) / $design_capacity * 100
$attenuation_rate = [Math]::Truncate($attenuation_rate * 10) / 10; # 小数点第一位までに揃える。

# powercfgコマンドの実行結果のファイルを削除する。
Remove-Item -Path $TEMP_FILE

# バッテリーの劣化度合い(%)を出力する。
Write-Host "このPCのバッテリーの最大容量は$attenuation_rate%減少しています。"
Write-Host "設計時の容量(DESIGN CAPACITY):$design_capacity"
Write-Host "満充電時の容量(FULL CHARGE CAPACITY):$full_charge_capacity"

# 処理結果が流れてしまわないように、Pauseを実行する。
cmd /c Pause | Out-Null
出力結果の例
PS C:\Users\NKOJIMA> C:\Users\NKOJIMA\Downloads\battery_report.ps1
ノートPCのバッテリーの消耗具合を確認します...
このPCのバッテリーの最大容量は0%減少しています。
設計時の容量(DESIGN CAPACITY):45010
満充電時の容量(FULL CHARGE CAPACITY):45010

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0