' 圧縮ツールを使ってバックアップを取る
' ただし、N日前のバックアップファイルは削除する。
'
' author Jomora(http://jomora.bne.jp/)
' version 2005.01.26 yyyyMMddからyyyyMMdd_hhmmssに変更
' version 2005.01.03 圧縮ツールをjarに変更
' version 2004.12.07 作成

' バックアップ対象フォルダ
targetFolder = "C:\inetpub"
' バックアップファイル保存フォルダ
saveFolder = "D:\backup"
' n日前のファイルを削除する
nDiff = 15

yyyyMMdd_hhmmss = year(now()) & right(100 + month(now()), 2) & right(100 + day(now()), 2) & "_" & right(100 + hour(now()), 2) & right(100 + minute(now()), 2) & right(100 + second(now()), 2)
saveFilePath = saveFolder & "\Inetpub_" & yyyyMMdd_hhmmss & ".zip"

' バックアップ用コマンド
strCommand = "jar cfM " & saveFilePath & " -C " & targetFolder & "/ ."
'strCommand = """C:\Program Files\LHMELT\LHMELT.EXE"" -a " & targetFolder & " -f" & saveFilePath & " -q -v-"

WScript.Echo("command>" & strCommand)

' ログ出力関数
private sub PrintLog(lngType , strMessage, strDetail)
	WScript.Echo(strMessage & vbTab & strDetail)
	Call objShell.LogEvent(lngType, strMessage & vbTab & strDetail)
end sub

' main関数
Set objShell = CreateObject("WScript.Shell")
' バックアップ処理実行
set objScriptExec = objShell.Exec(strCommand)

' 処理終了待ち
lngProcessTime = 0
do while objScriptExec.Status = 0 
	WScript.Sleep(1000)
	lngProcessTime = lngProcessTime + 1
loop

Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFileSys.GetFolder(saveFolder)

' N日間以前のファイルを削除
WScript.Echo("以下のファイルを削除します。")
For Each objFile In objFolder.Files
	If DateDiff("d", objFile.DateLastModified, Now) >= nDiff Then
		Wscript.Echo objFile.DateLastModified & vbTab & objFile.Path
		Call objFile.Delete
	End If
Next

' 処理結果表示
if objScriptExec.ExitCode = 0 then
	Call PrintLog(0, "正常終了しました。", "処理時間：" & CStr(lngProcessTime) & "[sec]")
	WScript.Quit(0)
else
	Call PrintLog(1, "エラー終了しました。","処理時間：" & CStr(lngProcessTime) & "[sec]")
	WScript.Quit(1)
end if

