今回のテーマ: WSF
[保存しますか(Y/N)]カチッ。...え、うそやん、ちょっと待って、保存したらあかんやん。うわーっ。
「ごめーん、そっちにあるファイル、削除してしまったみたいやねんけど、ゴミ箱から元に戻せる?」って、をい。ネットワーク越しに削除されたら、ゴミ箱に入らへんねんってば。
「あれ?なんでこのファイル開かれへんの?嘘やろ。なんで開くとエクセル固まんのん」
こんな経験、有りませんか?パソコン雑誌なんかには、「バックアップはマメにすべし」なんて書かれているけど、手作業でやると忘れがちになるし、毎日使うファイルのバックアップが2週間前、なんてこともあります。
毎日機械的にバックアップしていても、たまに突然3日前のファイルが欲しい、なんてことも。あるいはすでに壊れたファイルをバックアップに上書きしてしまい、マスターもバックアップも読めない...なんて非常事態も起こりえます。
バックアップこそ、スクリプトの出番です。ただ、単純に最新版ファイルのコピーをとるだけだと、壊れたファイルのコピーをとる恐れがあるので、このスクリプトでは、ファイル名にバックアップした日付をくっつけた物をコピーします。これでいつバックアップをとったのかが一目でわかるようになっています。
もちろん、このままでは際限なくバックアップファイルが増え続けることになるので、一定期間すぎたバックアップは削除されるように指定できます。
非常に長くなっていますが、編集する部分は先頭の数行だけです。
履歴付きバックアップダウンロード
今回は、VBSファイルではなく、WSFファイル(ウィンドウズスクリプトファイル)にしてみました。
見ての通り、一番大きな違いは、スクリプトファイル自体がXMLという書式に則って記述されていることです。これにより、プログラム本体とユーザーの環境に依存する編集必要箇所を分離しています。XMLの知識がない方でも(普通はないと思います)、コメントを見れば何となくわかると思います。
バックアップ先のフォルダの指定は、一つのフォルダをダブルクォーテーションなどで囲まずに指定します。できればフルパスで指定して下さい。相対パスで指定した場合、スクリプトのあるフォルダにバックアップが作成されます。
古いバックアップを削除する期限の指定は、適当と思われる数字を指定して下さい。ゼロを指定するとバックアップの削除をしなくなります(手動で削除しない限り、バックアップファイルが増え続けます)。
バックアップするファイルの指定は、ファイル名をフルパスで指定します(こちらもダブルクォーテーションでくくってはいけません)。複数のファイルを指定する場合は、改行で区切って下さい。
上記3箇所の編集を行い、実行すると、バックアップ先フォルダにファイル名と同じ名前のフォルダを自動的に作成し、そこにバックアップファイルを作成します。バックアップファイルのファイル名は、オリジナルのファイル名の後ろに日付が付いたものになります。同じ日に2度以上スクリプトを実行した場合は、さらにバックアップを行った時刻が付加されます。
なお、このスクリプトを手動で起動しようとすると、結局は忘れることになります。タスクマネージャーなどで定期実行するように設定しておきましょう。