记录测试工作中的点滴......

win平台实现自动备份功能

上一篇 / 下一篇  2009-03-19 13:47:52 / 天气: 阴雨 / 心情: 平静 / 精华(1) / 个人分类:文档编辑技巧

假如D:\backup\a为备份源文件夹,备份路径为D:\backup\,文件夹名为当天的日期,如D:\backup\2006-04-17\a,每周5备份一次,3周一个循环,即备份第4周时,第1周的备份删除,以减少空间。同时在D:\backup\log\里写日志文件,记录复制的文件,文件名为log-日期.txt,如log-2006-04-17.txt 。

1.建立backup.bat,内容如下(不包括说明):

IF EXIST log-%date:~0,10%.txt del /F /S /Q   log-%date:~0,10%.txt
#如果日志文件存在则删除。%date:~0,10%取日期的前10位,我的系统日期格式"date/t"是“2006-04-17 星期一”,所以取得“2006-04-17”。根据情况需调整。

IF EXIST %date:~0,10%  RD /S /Q %date:~0,10%     #如果文件夹存在,删除

MD %date:~0,10%     #建立文件夹

xcopy a %date:~0,10%\a\ /C /E /H  /K /F  /R /y >> log/log-%date:~0,10%.txt  & time/T>> log/log-%date:~0,10%.txt   
#复制a文件夹到%date:~0,10%\a\,并同时把已复制的文件输出到日志文件。xcopy连目录一起复制

IF EXIST %date:~0,10% IF EXIST %delDate%  RD /S /Q %delDate%   //如果已复制完成,则删除前3周(%delDate%指明,由下面vb取得)的备份。

2。建立backup.vbs,取的前3周的日期内容如下(不包括说明):

dtmYesterday = DateAdd("d",-21,Date)        "取前21天,即3周前的日期

strYear      = DatePart("yyyy",dtmYesterday)
If DatePart("m",dtmYesterday) < 10 Then
        strMonth = 0 & DatePart("m",dtmYesterday)
Else
        strMonth = DatePart("m",dtmYesterday)
End If
If DatePart("d",dtmYesterday) < 10 Then
        strDay = 0 & DatePart("d",dtmYesterday)
Else
        strDay = DatePart("d",dtmYesterday)
End If
delDate = strYear &"-"& strMonth &"-" &strDay

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run("CMD /C set  delDate=" & delDate & " & backup.bat")    "调用上面写的backup.bat,并传递前3周日期delDate, /C 执行后关闭cmd窗口,/K则不。

Set WshShell = Nothing

现在可以在cmd窗口里或直接点击backup.vbs执行,则可完成备份。再利用任务计划,则可定时执行你的备份了

结合Windows计划任务就可以完全实现自动备份了


TAG: 备份

 

评分:0

我来说两句

Open Toolbar