CleanerKing: Windowsのクリーンアップを一つのコマンドラインにまとめる
CleanerKing は Windows クリーンアップ用のコマンドラインツールだ。普段なら GUI をいくつもクリックして回るか、cleanmgr msconfig chkdsk といったコマンドを覚えておかないとできない作業、つまり一時ファイル、キャッシュ、SoftwareDistribution、Prefetch、Recent の掃除を、一つのコンソールプログラムにまとめた。起動してメニューを選べば、まとめて一回で走り切る。
Java で書いた。この手のスクリプトなら PowerShell のほうがネイティブだが、Java を選んだのはモジュール化の練習をしたかったのと、長く機能を足していける骨格が欲しかったから。source/target は 1.8 に固定、依存管理は Maven、対話は jLine 3.28、ログは slf4j。エントリポイントは org.CleanerKing.Client。main() の中で各モジュールをメニューに登録するので、起動すればそのままコマンドラインのメニューになる。Windows 専用で、呼ぶコマンドもパスも全部 Windows のもの、クロスプラットフォームにするつもりはない。
各機能は一つの Module として ModuleManager に登録され、メニューに自動で並ぶ。一番よく使うのはワンクリッククリーンアップで、ユーザーとシステムの一時ディレクトリ、ごみ箱、SoftwareDistribution/Prefetch/Recent、Edge/Chrome/Firefox のキャッシュを一気に片付け、最後についでに DNS を flush する。細かくやりたいなら高度なクリーンアップを使って、全部まとめて消さずに自分で対象を選ぶ。残りのパーツはこんなところ。cleanmgr diskmgmt.msc msconfig chkdsk taskmgr をショートカット起動にして覚えなくて済むようにしたもの、サイズ・日付・正規表現でファイルを検索して削除するもの、ネットワークアダプタを見て DNS を設定する DNS モジュール。設定は config.properties に保存し、なければ自動生成する。
コンソールにはさらに 3D ASCII のタイトル、ローディングアニメーション、ANSI カラー出力を足した。純粋な自己満足で、一日一回開いて気分を上げるためのものだ。
ビルドは mvn clean package だけで、JAR は target の下に出る。走らせるときはエンコーディングの指定を忘れずに。
java -Dfile.encoding=UTF-8 -jar CleanerKing.jar
先に落とし穴を書いておく。クリーンアップと DNS まわりは管理者権限が要るので、昇格したターミナルから起動しないと、多くの操作が静かに失敗する。pom には今のところ shade/assembly を付けていないので、JAR を単体で走らせるには jLine と slf4j を自分で classpath に詰め込む必要がある。これは後で直す。
バージョンはまだ 1.0-SNAPSHOT。コアは一通り動くし、メニューにはネットワーク修復の枠を一つ確保してあるが、コードは書き終えていないのでとりあえずのプレースホルダだ。製品ではなく、自分のマシンの手元の便利道具というだけで、どこかが面倒になったらまた一枚足していく。