2016年8月22日月曜日

新しい日付のファイルだけを別のフォルダにコピーする

データバックアップを自動的にやる方法の一つとして、新しいファイルだけを別のフォルダにコピーします。 例えばDropboxのフォルダを指定しておけば、無料で利用できる2GB上限以内で常に新しいファイルだけをクラウド保存できます。

やり方はいろいろありますが、ここではVBSを使います

Option Explicit

Dim nannichimae
Dim strNow
Dim hiduke
Dim myxcopy
Dim objWshShell
Dim sourceDirectry
Dim targetDirectry

sourceDirectry="e:\temp2"
targetDirectry="e:\temp3"
nannichimae = 1

' 〇日前の日付を求める
strNow = Now()-nannichimae
hiduke= Month(strNow) & "-" & Day(strNow) & "-" & year(strNow)

'xcopyのパラメーターセット
myxcopy = "xcopy /d /i /s /y /d:" & hiduke & " " & sourceDirectry & " " & targetDirectry
'WScript.echo myxcopy
'myxcopyの実行
'オブジェクト作成
Set objWshShell = WScript.CreateObject("WScript.shell")
'コマンド実行
'nResult = objWshShell.Run( "cmd /c " & myxcopy ),0
'下のやり方だとDOS窓が開かない 0指定で非表示
objWshShell.Run "cmd /c " & myxcopy ,0,false 

元のファイルが有る場所 sourceDirectry

No-00020

上のVBSを実行すると、コピー先の targetDirectryの内容は

No-00021

となります。 nannichimae=1 となっていますので、今日+1日前のファイルがコピーされます。 8/21と8/22の分

常に新しいファイルだけにしておきたいのなら、targetDirectryのファイルを del *.* で削除して、上のVBSを実行すればOK