批处理打造定时自动压缩备份,并自动删除N天以前的备份

技术交流16年前 (2008)发布
290 0

将以下内容保存为bat批处理文件,然后建立计划任务,定时执行这个bat脚本:

免费内容:

C:\Progra~1\WinRAR\rar a E:\bak\%date:~0,4%%date:~5,2%%date:~8,2%.rar F:\PHP\MySQL545\data\demo

说明:调用rar程序进行打包,存储为类似20080902.rar的以当天日期为文件名的压缩包。。

这样就是每天生成一个压缩包;如果是服务器空间比较紧张的朋友,还可以用下面的脚本来自动删除7天以前的文件:

将以下脚本加在上面哪个脚本末尾,或者单独保存一个bat,新建立个计划任务:

免费内容:

@echo off
  Rem 取7天之前的日期,取回放入变量nowdate
  echo wscript.echo dateadd("d",-7,date) >%tmp%\tmp.vbs
  for /f "tokens=1,2,3* delims=-" %%i in (‘cscript /nologo %tmp%\tmp.vbs’) do set y=%%i
  for /f "tokens=1,2,3* delims=-" %%i in (‘cscript /nologo %tmp%\tmp.vbs’) do set m=%%j
  for /f "tokens=1,2,3* delims=-" %%i in (‘cscript /nologo %tmp%\tmp.vbs’) do set d=%%k
  if %m% LSS 10 set m=0%m%
  if %d% LSS 10 set d=0%d%
  set /a nowdate=%y%%m%%d%
  
  Rem 删除文件,修改下面的deldir变量为你要需要删除的文件所在的目录
  set deldir=E:\bak
  
  for /f "delims=." %%i in (‘dir /b %deldir%’) do (
  if %%i LSS %nowdate% del /f %deldir%\%%i.rar
  )  

代码很好懂。注意修改里面的目录为你自己的目录。-7是指删除7天以前的文件。可以修改成其他数值。
当然,需要你的服务器支持wscript,以及执行权限足够运行rar程序和写入tmp目录。
 

© 版权声明

相关文章

暂无评论

  • 压缩出问题
    压缩出问题 游客

    为什么在XP中压缩的文件格式为20090515.rar,在2000server版中压缩的文件格式为星期五.rar,是我的服务器有问题,还是哪里不对?我想要压缩成20090515.rar这种格式的文件

    回复
  • 压缩出问题
    压缩出问题 游客

    为什么在XP中压缩的文件格式为20090515.rar,在2000server版中压缩的文件格式为星期五.rar,是我的服务器有问题,还是哪里不对?我想要压缩成20090515.rar这种格式的文件

    回复