中关村村草 发表于 2011-11-22 16:11

用批处理命令加WinRAR实现自动备份文件数据

用批处理命令加WinRAR实现自动备份文件数据






因为每天都要自动从开发服务器上备份源代码,并且由于开发的源代码中有大量的日志文件(Log)和开发时上传的附件(uploadfile)都巨大,但是这些文件都可以不要,如果用winrar 全部压缩,每天都要耗时1~2个小时。实在是太浪费时间了。




如图: log 、 uploadfile 下,有大量的文件,而这些是不用备份的。




如果用

rar a - F:\bak.rarD:\wwwroot   -ag 进行压缩,则会把所有的文件都全部压缩的。那么将会消耗很多时间和磁盘空间的





更严重的时,我们的wwwroot 下,一共有3个项目的代码。如图“QYXMGL_XY”、“Shopping”、“TEST”。每个项目下的文件夹架构相似,都有“Log""Uploadfile”,每次全部压缩是相当费时费力的。




因此,想到了用WinRAR的命令参数, (-X ),来排除某些文件夹




例如,要排除   webroot下的Log目录,那么可以这么写

            -x*\log\*

注意

    (1)有2个“\”,排除log目录,其实就是在压缩时,避开 \log下的文件

    (2)整个目录下,如果还有其它名为“log”的,也会一并被过滤。

      所以,如果仅仅是过滤某1个文件夹,可以再增加限制条件。

          -x*webroot\log\*


   这样的话,就仅仅是过滤webroot下的Log了。




详细的代码如下,复制到记事本后,另存为“自动备份.CMD”即可。windows2000\2003下,建议用cmd做扩展名,其它系统用.bat做扩展名。
@echo off


::生成当月的文件夹名(在F:\盘创建文件夹)
::DirName 目标路径
::Backup原路径
@set DirName=F:\FX_%date:~0,7%
@set Backup=D:\wwwroot

::映射 WinRar
path "C:\Program Files\WinRAR"

cls
@echo 自动备份到 %DirName% 路径下
@echo .
@echo .

pause

::自动创建日期文件夹
@if not exist %DirName% (md %DirName%)


rar a -x*webroot\log\* -x*webroot\uploadfile\* %DirName%\FX_%Backup% -ag以上代码在windows2003 服务器操作系统上测试通过。

运行效果图:

Shell_HAT 发表于 2011-11-22 16:34

我就纳了闷了,你们这样的BAT风格都是从哪里学来的啊,用那么多@是为了过瘾?
页: [1]
查看完整版本: 用批处理命令加WinRAR实现自动备份文件数据