batteryreportを任意のフォルダに実行日時のファイル名で保存する方法
概要
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桁の場合先頭が半角スペースになってしまうため諦めて日付のみとしました。
Discussion