batteryreportを任意のフォルダに実行日時のファイル名で保存する方法

1 min read読了の目安(約1500字

概要

WindowsのノートPCにおいてバッテリーの情報を取得するコマンドであるpowercfg /batteryreportについて、任意のフォルダに実行日時のファイル名でレポートを出力させるバッチファイル等の情報です。

batteryreportとは何か

公式の説明から引用します。

システムの有効期間中のバッテリー使用特性のレポートを生成します。

説明がざっくりとし過ぎているので補足すると、一定期間においてバッテリーがどの様に使われたのかとどれくらい容量を持っていたのかが示されたレポートが出力されます。

どのOSから正式に採用されましたという公式情報は見つけられなかったのですが、私の記憶ではWindows8以降から使用できる機能のはずです。

とにかく使ってみる

とりあえずコマンドプロンプトにて下記コマンドを実行してみましょう。

powercfg /batteryreport

すると、実行したフォルダ内にbattery-report.htmlというファイルが出力されているはずです。

出力されたレポート内には色々な情報が書かれていますが、内容の読み方については別途記載することにします。
このレポート内に過去数日間のバッテリーの使用状況について数値とグラフで記載されているものがあるため、これを定期的に取得してバッテリーがどんな感じに使われたのかをPC内に残す様にしたいと思います。

レポート名を実行日時にする

batteryrepotは/outputというオプションをつけることで出力場所とファイル名を指定することができます。

こちらのページを参考にファイル名を実行日時にしてみます。

バッチファイル編

変数が使えるので楽ですね。

@echo off

set filePath=.
set dateStr=%date:/=-%
set timeStr=%time: =0%

set year=%dateStr:~0,4%
set month=%dateStr:~5,2%
set day=%dateStr:~8,2%

set hour=%timeStr:~0,2%
set min=%timeStr:~3,2%
set sec=%timeStr:~6,2%

set fileName=%year%%month%%day%-%hour%%min%%sec%

powercfg /batteryreport /output %filePath%\%fileName%.html

filePathはお好きなパスに変更してください。
これで、任意のファイルパスに実行した日時のレポートを出力することができます。

コマンド編

なんとなくコマンドでスパッと出力したいこともありますよね。

powercfg /batteryreport /output .\%date:/=%.html

本当は時間も含めたかったのですが、%time%の仕様で何時の表記が1桁の場合先頭が半角スペースになってしまうため諦めて日付のみとしました。