Board logo

标题: [文件操作] 如何用批处理做增量备份 [打印本页]

作者: petertch    时间: 2011-11-25 13:51     标题: 如何用批处理做增量备份

本帖最后由 petertch 于 2011-11-25 15:47 编辑

RT,
想用批处理做一个增量备份,
有一个备份文件夹啊c:\backup
每天将要备份的文件放进去,
然后晚上通过windows的任务计划执行批处理,
来备份到E:\backup 文件夹里,
每天只备份增量的部分,就是当天放进去的。
增量怎么锁定啊 , 很头疼啊~!

先谢谢高手们~!~

刚刚没有解释清楚 , 这里我举个例子吧。
例:
[第一天]
我放了如下几个文件进入 c:\backup
AAA        (这个是文件夹,假定文件夹下还有文件,这里不写出来了)
AAA.TXT  (修改日期是很早以前,假定是一年前的)
AAA2.TXT
晚上通过WINDOWS自带的任务计划调用BAT,
则应该自动把上面的
AAA      (文件夹包括其下的子文件夹,文件)
AAA.TXT
AAA2.TXT
都复制到了E:\backup

[第二天]
我又放了如下几个文件进入 c:\backup
BBB          (这个是文件夹,假定文件夹下还有文件,这里不写出来了)
BBB.TXT    (修改日期是很早以前,假定是一年前的)
BBB2.TXT

则现在c:\backup下有如下内容了:
AAA      (这个是文件夹,假定文件夹下还有文件,这里不写出来了)
BBB      (这个是文件夹,假定文件夹下还有文件,这里不写出来了)
AAA.TXT
AAA2.TXT
BBB.TXT   
BBB2.TXT

晚上再调用这个BAT时候,就应该自动把
BBB          (文件夹包括其下的子文件夹,文件)
BBB.TXT   
BBB2.TXT
这三个文件拷贝到E:\backup,
关键!是只把这三个文件拷贝进去,是增量备份。

第三天的话,同上,有CCC之类,
只复制CCC相关的,AAA与BBB不复制。

大致就是这个意思。高手们请参阅~!!
作者: yangfengoo    时间: 2011-11-25 14:22

先取文件时间,然后根据时间来判断是否为当天
作者: CrLf    时间: 2011-11-25 14:24

本帖最后由 CrLf 于 2011-11-25 14:25 编辑
  1. xcopy /d /y /s c:\backup e:\backup\
复制代码
完事...
作者: petertch    时间: 2011-11-25 15:08

完事...
CrLf 发表于 2011-11-25 14:24



    额 楼上两位兄弟, 我主帖没说明清楚。。
因为有些时候可能仅仅是把硬盘其他地方需要备份的文件放到c:\backup下
文件本身是没有修改过的,所以最后修改日期是不会变的。
因此不能通过修改日期来判断啊。
并且,每天要备份的文件也应该是不同的
作者: CrLf    时间: 2011-11-25 15:30

回复 4# petertch


    能否在顶楼举个例子呢?
作者: petertch    时间: 2011-11-25 15:59

回复  petertch


    能否在顶楼举个例子呢?
CrLf 发表于 2011-11-25 15:30


版主~顶楼有更新了~
作者: CrLf    时间: 2011-11-25 17:09

本帖最后由 CrLf 于 2011-11-25 18:18 编辑

那就不覆盖...
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1 10 8000) do set n=!n!nnnnnnnnnn
  3. ::保存八千个 n 到变量 n
  4. echo !n!^&echo !n!^&echo !n!|xcopy /s c:\backup e:\backup\
  5. ::用管道将两万四千个 n 传递给 xcopy,让它等待输入的时候自动从缓冲区读取一个 n,于是选择不覆盖已有文件。
复制代码

作者: petertch    时间: 2011-11-25 17:23

那就不覆盖...
CrLf 发表于 2011-11-25 17:09

谢谢
8过试了下没有用啊 米有提示 也米有复制
作者: abcdshenji    时间: 2011-11-25 17:51

本帖最后由 abcdshenji 于 2011-11-25 17:52 编辑
  1. for /f "delims=" %%i in ('findstr /sm ".*" c:\backup\*') do (
  2. if not exist "e:%%~pnxi" xcopy "%%~i" "e:%%~pi" /e
  3. )
复制代码

作者: victory2589    时间: 2011-11-25 17:59

回复 7# CrLf


    版主能把代码加注解吗?
作者: CrLf    时间: 2011-11-25 18:08

回复 10# victory2589


    已注释
作者: 523066680    时间: 2011-11-25 20:16

本帖最后由 523066680 于 2011-11-25 20:17 编辑

关于备份,更新备份。
推荐robocopy
微软官网的下载+安装包链接:
http://www.microsoft.com/downloa ... ang=en&id=17657


“Robocopy.exe 是 微软在Windows server 2003 Resource Kit Tools 里面提供的程序来做备份的,现在Windows Vista系统中已经自带了这个命令行程序。”

这个工具是微软公司推出的,配合bat批处理,使用非常稳定。

xp   win7系统下,都可以正常使用。
作者: petertch    时间: 2011-11-28 14:57

谢谢楼里的版主与各位兄弟的帮助
问题现在基本解决了 ,谢谢~!!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2