文書ファイルに日付をつけてバックアップ後、開く

文書ファイルの更新時に以前はdocument1.doc, document2.docなどと番号を増やして行き、最後にdocument_final.docなどどしていたのですが整理が悪く、どの番号が最終だか分からなり、しまいにゃあdocument_final2.docとfinalが複数出来たりもうぐちゃぐちゃ。

そこで、ある文書(sample.doc)があった場合、「そのファイルのあるフォルダに、今日(2005年3月4日)ならばsample_050304.docという名前でバックアップし、元のsample.docというファイルを開く」までを元ファイルを「右クリック」から「送る」で出来るようにしました。

名前は何でも良いのですがこれを適当な場所に保存し、そのショートカットを作成します。ショートカットのファイル名が最終的に右クリックのメニューに表示されますので適当に変更してください。内容はたったこれだけのバッチファイルです。

@ echo off
setlocal enabledelayedexpansion
for /F “tokens=1-3 delims=/ ” %%a in (‘date /t’) do set DATES=%%a%%b%%c
set newfilename=”%~dpn1_!DATES:~2!%~x1″
copy %1 %newfilename%
start “” %1

「スタート」>「ファイル名を指定して実行」より「sendto」と入力して「OK」をクリックするとSendToフォルダが表示されるので、その中に先のショートカットを移動します。SendToに置いたショートカットを右クリック>プロパティ>「ショートカット」タブ>実行時の大きさ>「最小化」を選択します。この操作はやらなくても良いのですがその場合、DOSプロンプトの黒い画面が一瞬開いて閉じます。

好きなファイルを右クリック>送る>「バックアップ後、開く」を選択してみてください。その文書が開くと思いますが、同時に同じフォルダにバックアップが作られていると思います。

こうすることにより、常に元の名前のファイルが最新ファイルとなり、バックアップが日付付きで出来ていくことになります。継続的な仕事をその日の最初にするときにファイルをダブルクリックして開く代わりに「バックアップ後、開く」を選択する癖をつけておくと楽に文書の世代管理ができます。

2005.4.19
時刻付きも欲しくなり作りました。これを上記と同じ手順で保存し右クリックに登録してみてください。2005.4.19 5:05pmであればsample.doc→sample_050419_1705.docという名前でバックアップを作った後に元のファイルを開きます。

補足
・バックアップを日付または日時付きで作りたいだけで、元のファイルを開きたくない場合はバッチファイルを適当なエディター、ワープロで開いて最後の一行を削除して使用してください。
・バッチファイルやそのショートカットに目的のファイルをDrag&Dropしても同じ様に機能します
・英語版OSを使用しており日時の表示形式が年月日ではなく月日年のシステムの場合は
DATES=%%a%%b%%c → DATES=%%c%%a%%b
とバッチファイルの3行目を変更して使用してください。
これはWindows Xpで動作確認しており2000でも大丈夫だと思いますが、98やMeではダメかもしれません。その際はコメントください。

Unix(含むMac OS X)であればこんなシェルスクリプトであっという間にWindowsで言うところのbat fileが出来てしまう。

Windowsでもこんなフリーウェアどこかにあるだろうとして探し、これを見つけたのですが、ものぐさなので、バックアップ後、元ファイルの起動までしてくれないと面倒だなぁと思いました。

最初はVB Scriptか何か使わないと出来ないのかな、しかしVB勉強する時間も無いし、と思っていたのですが、バッチファイルでも出来そうなのでぐちゃぐちゃ調べていたら出来ました。

DOSプロンプト活用相談室@FPCU本館 コメント・ツリー一覧
ここにはお世話になりました。えらくごちゃごちゃしたサイトなのですが内容充実しており、悩んだ挙句に質問したら一瞬でお答えいただき感動しました。

もっと優れたインターフェースのものや、右クリックから「送る」を選択しなくても、右クリックしたらすぐ出てくるようなもの、誰か作ってくれると嬉しいのですが。ま、でもバッチファイルの勉強になりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA