Jane のキャッシュを RAM ディスクに置く運用方法

いろいろ考えた。

ログオン時にリストア、ログオフ時にバックアップ
Vista でログオフ時に自動実行させるにはタスクスケジューラではなくグループポリシーを使う。ところが Vista Home ではグループポリシーが使えない*1。ぷぎゃー
スタートアップでリストア、以後随時バックアップ
robocopy を使うと「フォルダを監視して変化があったらミラーリング」が可能。しかし監視間隔が最短1分ってのは長すぎるし、監視中ずっとコマンドプロンプトが出っぱなしになるのもイヤだ。
アプリ起動時にリストア、終了時にバックアップ
同じく robocopy を使って差分コピーが可能。初回は全コピーになるので時間がかかりそう。……やってみたら 40MB 程度のコピーは数秒以内に終わっちゃって気にならない。

というわけで第 3 案を採用。 Jane2ch.exe の代わりに次の VBScript を実行するようにした。

Set ws = WScript.CreateObject("WScript.Shell")
ws.Run "cmd /c robocopy D:\AppData\JaneStyle Z:\AppData\JaneStyle /mir /xd VwCache /njh /nfl /ndl", 7, true
ws.Run "D:\Free\JaneStyle\Jane2ch.exe", 1, true ' 終了を待つ
ws.Run "cmd /c robocopy Z:\AppData\JaneStyle D:\AppData\JaneStyle /mir /xd VwCache /njh /nfl /ndl", 7, true
Set ws = Nothing

robocopyアーカイブ機能はないのでフラグメンテーションは避けられないが、アーカイバを通すと (たとえ無圧縮 ZIP でも) 数秒では処理が終わらない。ここは速度を優先しよう。