找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 39546|回复: 12

[文件操作] 如何用批处理做增量备份

[复制链接]
发表于 2011-11-25 13:51:16 | 显示全部楼层 |阅读模式
本帖最后由 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不复制。

大致就是这个意思。高手们请参阅~!!
发表于 2011-11-25 14:22:41 | 显示全部楼层
先取文件时间,然后根据时间来判断是否为当天
发表于 2011-11-25 14:24:08 | 显示全部楼层
本帖最后由 CrLf 于 2011-11-25 14:25 编辑
  1. xcopy /d /y /s c:\backup e:\backup\
复制代码
完事...
 楼主| 发表于 2011-11-25 15:08:29 | 显示全部楼层
完事...
CrLf 发表于 2011-11-25 14:24



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


    能否在顶楼举个例子呢?
 楼主| 发表于 2011-11-25 15:59:07 | 显示全部楼层
回复  petertch


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


版主~顶楼有更新了~
发表于 2011-11-25 17:09:28 | 显示全部楼层
本帖最后由 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,于是选择不覆盖已有文件。
复制代码
 楼主| 发表于 2011-11-25 17:23:18 | 显示全部楼层
那就不覆盖...
CrLf 发表于 2011-11-25 17:09

谢谢
8过试了下没有用啊 米有提示 也米有复制
发表于 2011-11-25 17:51:21 | 显示全部楼层
本帖最后由 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. )
复制代码
发表于 2011-11-25 17:59:08 | 显示全部楼层
回复 7# CrLf


    版主能把代码加注解吗?
发表于 2011-11-25 18:08:31 | 显示全部楼层
回复 10# victory2589


    已注释
发表于 2011-11-25 20:16:26 | 显示全部楼层
本帖最后由 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系统下,都可以正常使用。
 楼主| 发表于 2011-11-28 14:57:09 | 显示全部楼层
谢谢楼里的版主与各位兄弟的帮助
问题现在基本解决了 ,谢谢~!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 09:59 , Processed in 0.012875 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表