読者です 読者をやめる 読者になる 読者になる

四十三庵

蔀の雑記帳

Windowsバッチでファイル名に日付をいれてバックアップとる

IT

会社で使ってるライフハック系。
Windows環境の話です。

やりたいこと

Windowsのふせんアプリを僕はよく使う。
ふせんアプリ、非常に便利なんだけども、間違ってバツを押すと消えてしまう。
元々がどうでもいいメモ書きを想定していているので、特にバックアップとかない仕様になっている。
僕は結構仕事上の重要なメモとかをふせんに書いちゃうタイプで、
さすがにバックアップとらないとまずいだろうと思い、バッチを作ることにした。

ふせんアプリのデータ

これは環境によるんだけども、ふせんのデータソースは、

C:¥(ここは環境によってだいぶ違うので略)¥AppData¥Roaming¥Microsoft¥Sticky Notes¥StickyNotes.snt

という場所にある、拡張子sntファイルである。
ふせんアプリは、開いた瞬間に、このフォルダにある、
「StickyNotes.snt」というファイルを見に行くことになっているようだ。
中身はふせんのデータ内容はもちろん、ふせんのサイズ・色などのデータも持っている。
仮に過去のsntファイルであれ、名前さえ変えちゃえば、ふせんはデータを読んでくれる。

バッチ例

@echo off
set sticky_data="C:¥Users¥AppData¥Roaming¥Microsoft¥Sticky Notes¥StickyNotes.snt"
set sticky_data_backup="C:¥Users¥Desktop¥BackUp¥StickyNotes_BackUp¥StickyNotes_%date:/=%.snt"
echo F | copy %sticky_data% %sticky_data_backup%

・パスは環境によって変えてね!
・このバッチをタスクマネージャーで毎日動かすと自動バックアップが可能になる。
・シンクライアント、ファイルサーバー、クラウド等を利用している場合、最終行copyではなくてxcopyを使いましょう。
・「%date:/=%」は、%date%で日付(例:2016/1/1)が出せるWindowsバッチの環境変数だが、
ファイル名に/が入ってるとダメなので、/のみ置換して消している。
・「echo F」は、copyコマンドを入れた時に「これはファイルですかディレクトリですか」と聞いてくるので、それに対する返答。
(僕の環境はxcopy使っているので、必ず聞いてくる。copyだとどうなのかな?)
・echo F以外にも、オプションをいくつか指定すると回避できる方法がネットで紹介されていたが、あまり直感的じゃなかったので無視。

実行結果

デスクトップにある、「BackUp」フォルダ内の「StickyNotes_BackUp」フォルダに、
毎日「StickyNotes_20160328.snt」という形式で、sntファイルのバックアップがとられるようになった。

これでいつ不慮の事故でふせんが消えても安心だし、昔のふせんにメモしたことを思い出すこともできる。
ふせんだけでなく、日次でバックアップとりたいファイルであれば、なんでも応用効くと思います。

職場で使えるパソコンネタ系

blog.stm43.com
blog.stm43.com

(了)