◆ [VBScript] 右クリックメニュー > 送る で選択したファイルをバックアップする
こんばんワイン。どーもボキです。

プログラムやドキュメントを作成&編集する際、直前のバージョンを残したい時が多々ある。

Ctrl+ファイルのドラッグで、「コピー~ファイル名」のようにコピーファイルを残すのも手だ。
けど、ファイル名の「コピー~」が不細工。
マメにリネームする人ならとくもかく、ボキのようなズボラは、すぐに何のためのコピーなのかわからんなる。

なんで、VBScirpt と 右クリックメニュー > 送る を組み合わせて、
ファイルバックアップツールを作った。
導入方法
 1.以下のソースを、メモ帳にコピーする
 2.適当な名前をつけメモ帳を保存し、拡張子を「vbs」にする
 3.2のファイル自身(またはショートカット)を、
   C:\Documents and Settings\Administrator\SendTo に保存する
 以上。
'※バックアップ先フォルダを固定したい場合は、
' 以下のコメントを外し、適宜パスを編集すること
'cDPath_BackUp = "D:\BackUp\"

If WScript.Arguments.Count = 0 Then WScript.Quit

Set objWS = CreateObject("Wscript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")

s = Now
b = Mid(s,13,1) = ":" ' 時間が一桁か判定、True/False=-1/0

ymd_hms = Mid(s,3,2) & Mid(s,6,2) & Mid(s,9,2) &"_" ' 月日が一桁の場合は、「0がつく」
h = Mid(s,12,2+b): If b Then h = "0" & h ' 時間が一桁の場合は、「0がつかない」
ymd_hms = ymd_hms & h & Mid(s,15+b,2) & Mid(s,18+b,2)

' backupフォルダを作成
dpth = cDPath_BackUp
' 指定フォルダがない場合は、ドロップされたパスにフォルダ作成
If dpth = "" Then dpth = objFS.GetParentFolderName(WScript.Arguments.Item(0)) &"\backup\"
If Not objFS.FolderExists(dpth) Then objFS.CreateFolder(dpth)

' 日付フォルダを作成
dpth = dpth & ymd_hms
cmnt = InputBox("
コメントつける?")
If cmnt <> "
" Then dpth = dpth &"_"& cmnt
dpth = dpth &"
\"
If Not objFS.FolderExists(dpth) Then objFS.CreateFolder(dpth)

' 選択ファイル・フォルダをコピー
For Each pth In WScript.Arguments :Do
If objFS.FolderExists(pth) Then
r = objFS.CopyFolder(pth, dpth)
Else
r = objFS.CopyFile(pth, dpth)
End If
Loop Until 1 :Next
利用イメージ
a0021757_2314076.gif
バックアップしたいファイルを選択し(複数もOK)、右クリックメニュー > 送る > バックアップvbs

a0021757_2313378.gif
必要なコメント入力 (フォルダ名となるので、禁止文字は入れられない。「\」とかね。)
a0021757_2313618.gif
年月日時分秒_任意コメントのフォルダが作成され、その中にコピーがとられる


[PR]
by yozda | 2011-09-19 23:06 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/13635628
トラックバックする(会員専用) [ヘルプ]
<< [小説] 食堂かたつむり ニンテンドー3DS カンファレ... >>