用WINRAR备份通达OA的方案
liangzz原创
功能:
1、自动定时备份
2、自动关机
3、今天若已备份的话就不再备份
4、自动删除30之前的备份
请按照自己的需要自行修改哦……
将以下内容保存为BakOA.bat
注意要先将WINRAR安装目录的RAR.EXE文件复制到BakOA.bat所在目录
=============================================================================
@echo off
rem liangzz原创
echo 查询今天是否已经备份…………
set fname=MYOA%date:~0,4%%date:~5,2%%date:~8,2%
if exist %fname%*.rar goto :end
echo 正在停止相关服务…………
rem 顺序不能错,否则会导致关闭服务出错
net stop IMA_Server
net stop Office_Anywhere
net stop MySQL_OA
echo 正在备份+压缩…………
rar.exe a -ag -k -r -s -ibck E:\OA备份\MYOA.rar E:\MYOA\
rem -ag ……当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,文件名MYOAYYYYMMDDHHMMSS.rar;
rem -k ……锁定压缩文件;
rem -s ……创建固实压缩文件;
rem -ibck ……后台运行;
rem E:\OA备份\MYOA.rar ……备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间);
rem E:\MYOA\……要备份的文件目录;
echo 正在重新启动相关服务…………
net start MySQL_OA
net start IMA_Server
net start Office_Anywhere
echo …………备份完成…………
@echo off & setlocal ENABLEEXTENSIONS
call :Date2Day %date:~0,10% sdays
rem 删除30天之前的rar备份
set /a sdays-=30
call :Day2Date %sdays% difdate
echo 将删除 %cd% 下 %difdate% 前的修改的以下文件:
for /r %2 %%f in (*.rar) do if "%%~tf" LEQ "%difdate%" del /a /f "%%f" 2>nul
goto :EOF
:Date2Day
setlocal ENABLEEXTENSIONS
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
set yy=%%a & set mm=%%b & set dd=%%c
)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %2=%j%&goto :EOF
:Day2Date
setlocal ENABLEEXTENSIONS
set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%-%mm%-%dd%&goto :EOF
:end
还有个安装程序,请下载附件