下面是脚本内容:
@echo off
set path=d:\ddt_tool
rem set path=E:\sst27
set data_path=d:\Db_Tank_Back
if exist e:\Db_Tank_Back (set data_path=e:\Db_Tank_Back)
rem 压缩的数据库文件时间,如3天前的
set /a zip_time=3
echo %zip_time%
for /f %%b in ('%path%\datex -o -%zip_time% -fYYYYMMDD') do set /a var1=%%b
for /f %%c in ('%path%\datex -o -%zip_time% -fD') do set /a var2=%%c
%path%\7za.exe a %data_path%\Db_Tank_Copy_%var1%.7z %data_path%\Db_Tank_Copy%var2%.bak
rem 定义删除的数据库文件时间,如4天前的
set /a del_time=4
echo %del_time%
for /f %%d in ('%path%\datex -o -%del_time% -fD') do set /a var3=%%d
rem 定义删除的压缩数据文件时间,如30天前
set /a del_zip=30
echo %del_zip%
for /f %%e in ('%Path%\datex -o -%del_zip% -fYYYYMMDD') do set /a var4=%%e
rem 删除数据文件
del /Q /F %data_path%\Db_Tank_Copy%var3%.bak
del /Q /F %data_path%\Db_Tank_Copy%var4%.7z
exit
在这里设定的是自动删除4天前的原备份文件,自动删除30天前的压缩文件。还有很重要的一点,时间的获取是通过一个外部命令取得的,名字叫“DateX.exe”,要把这个命令和脚本放在同一个目录下。
最后,通过schtasks设置bat脚本每天自动执行!
http://53050.blog.51cto.com/43050/321540