OS初期化前に作っておくと便利なバッチファイル

前回「OS初期化前に作っておくと便利なレジストリファイル」と題して、よく使うレジストリファイルを紹介しましたので、今回はよく使うバッチファイルも紹介したいと思います。

バッチファイルを用意する理由

3ヶ月に1度くらいWindows 10を初期化するのが趣味なので、初期化後に使い慣れた設定に戻すために、レジストリファイルやバッチファイルを用意して作業を簡略化しています。

特に、powercfgコマンド(電源設定)等、管理者として実行しないと動作しないコマンドが多いため、バッチファイルを右クリックして[管理者として実行]をクリックできるのは便利だからです。

また、バッチファイルのショートカットを作ることで、その[プロパティ]→[ショートカット]タブから[管理者として実行]を設定しておくこと、ショートカットをダブルクリックするだけで、いつでも管理者モードで動作するため、それも便利です。

休止状態無効.bat

休止状態を無効にするコマンドです。

■バッチファイルの中身

powercfg.exe /hibernate off

休止状態とは、[スタート]メニューの電源ボタンから選べる[休止状態]のことですが、現在のメモリをCドライブのHiberfil.sysという隠しファイルに保存する機能です。

電源を切った後もメモリの状態はディスクに保存されていますし、あらためて電源を入れたときに復帰も早くなる………のですが、Windows 8以降どんどんとOSの起動が早くなり、SSDやM2.SSDといった高速なドライブも普及してきたため、あまり使わなくなりました。(普通に起動しても十分に早いため)

そうした使わない機能のために、大きなサイズ(通常は搭載メモリと同サイズ)のHiberfil.sysがあるのはディスクの無駄使いと思い、上述のコマンドで休止状態をOFFにしています。

環境変数TEMP.bat

その名のとおり、環境変数TEMPのフォルダを変更するだけのコマンドです。

■バッチファイルの中身

setx TEMP R:\TEMP
setx TMP R:\TEMP
setx TEMP R:\TEMP /M
setx TMP R:\TEMP /M

SSDが出始めの頃はプチフリーズ問題などがあり、メモリをディスク化するRAMディスクを使わないと一定時間ごとにマウスカーソルがカクつくようなプチフリーズが発生することがありました。

要するにメモリをRドライブとして作り、そこにテンポラリファイルを置く設定に変更することで、SSDへのディスクアクセス回数を減らすということです。そうすることでプチフリーズが減るため必須設定でした。今ではもうプチフリーズが発生するSSDなどなくなりましたし、更に高速なM2.SSDもあるため、RAMディスクは別に必須ではありません。

ただ、その頃に使い慣れてしまったといいますか、Rドライブというわかりやすいドライブ名をファイルの一時置き場として利用するのがクセになってしまいました。

そのため、今でもRAMディスクを作り、環境変数TEMPを一気に設定するバッチファイルを使っています。

ちなみにコマンドラインに多少馴染みのある人はSETコマンドじゃないの?と思われるかも知れませんが、SETコマンドではそのコマンドプロンプト内でしか環境変数が有効ではないため、SETXコマンドを使っています。TEMPとTMPを両方設定しているのは、それぞれの環境変数を参照するソフトのためであり、/Mオプションを付けているのはシステム環境変数に書き込むためです。

ChromeCache.bat

Google ChromeブラウザのキャッシュをRAMディスクに保存するように設定するバッチファイルです。

r:
mkdir Cache
rmdir /S /Q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache"
mklink /d "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache" R:\Cache

RドライブにCacheというフォルダを作成、Cドライブに元々あったChromeのCacheフォルダを削除、その後、シンボリックリンクを作成し、元々のCacheフォルダがRAMディスク上のCacheフォルダを参照するように設定変更しています。

バッチファイルを管理者として実行するのはもちろんのこと、Chromeブラウザが起動したままでは失敗するので終了してから実行しましょう。

startup.bat

Windowsのスタートアップ時にTEMPフォルダの中を削除するコマンドを書いています。

■バッチファイルの中身

del /S /Q R:\temp\*.*

/S はサブディレクトリも含めて削除するオプションで、/Qは削除確認のメッセージを出さないというオプションです。

hosts_copy.bat

ローカル環境でWebのテストをする開発者等、使う人は限られると思いますが、hostsファイルをコピーするコマンドです。

昔と違って C:\Windows\System32\drivers\etc\hosts ファイルをメモ帳で開いても管理者モードで起動していないと保存に失敗してしまうため、それならいつも使うUSBメモリに入れておいてコピーしたほうが楽かな、というだけの発想です。

■バッチファイルの中身

copy hosts %SystemRoot%\System32\drivers\etc

まとめ

前回の「OS初期化前に作っておくと便利なレジストリファイル」と同様、これらのバッチファイルもセットアップ用USBメモリの中に保存しておくと順番にポチポチするだけなので設定がとってもらくちんです。

RAMディスク関連の設定が多いため、あまり汎用的ではない気もしますが、どこかの誰かのお役に立てれば幸いです。