中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 文件备份器 上一主题 | 下一主题
bluewaterx
初级用户





积分 132
发帖 68
注册 2008-7-29
状态 离线
『楼 主』:  文件备份器

默认备份次数:10次,默认备份类型:*.txt,默认备份路径:当前路径下BakFile
超过10次,依次向前滚动,替换备份时间最早的.
@echo off
mode con cols=78 lines=3&color b0
setlocal enabledelayedexpansion
Title 载入中...


::备份文件次数,超过此次数,依次向前替换上一次备份 [自定义]
set strBakCount=10
::备份路径
set strBakPath=BakFile
::备份类型
set strFo=*.txt



::备份文件夹初始化
md !strBakPath!\ >nul 2>nul
md ...\ >nul 2>nul
for /l %%i in (0,1,!strBakCount!) do (
        md !strBakPath!\!strBakPath!s%%i >nul 2>nul
        attrib +s +a +r !strBakPath!\!strBakPath!s%%i)
::初始化与读取操作数SaveCount
if not exist !strBakPath!\!strBakPath!s0\DatSet.dat echo SaveCount=0 >!strBakPath!\!strBakPath!s0\DatSet.dat
for /f "tokens=1-2 delims==" %%i in ('type !strBakPath!\!strBakPath!s0\DatSet.dat') do (
        if /i "%%i"=="SaveCount" set strSaveCount=%%j
        if /i "%%i"=="DateTime" set strDateTime=%%j)
set /a strSaveCount+=0
Title !strBakPath! - 文档上限:!strBakCount! - 已存在!strSaveCount!次备份 - 最后备份时间:!strDateTime!
echo.&echo                             按任意键开始备份...&pause>nul

::备份操作判断
if !strSaveCount! geq !strBakCount! (
        ::备份文件夹已满
        for /l %%i in (1,1,!strBakCount!) do (
                set /a strTmp=%%i - 1
                move /y !strBakPath!\!strBakPath!s%%i\!strFo! !strBakPath!\!strBakPath!s!strTmp!\)
        copy /y !strFo! !strBakPath!\!strBakPath!s!strBakCount!\ >nul 2>nul
)else (
        ::备份文个夹未满
        set /a strSaveCount+=1
        copy /y !strFo! !strBakPath!\!strBakPath!s!strSaveCount!\ >nul 2>nul)
::后续操作
del /q !strBakPath!\!strBakPath!s0\!strFo! >nul 2>nul
echo SaveCount=!strSaveCount! >!strBakPath!\!strBakPath!s0\DatSet.dat
echo DateTime=%date:~0,10%,%time:~0,5% >>!strBakPath!\!strBakPath!s0\DatSet.dat
cls&echo.&echo                             备份完成.&pause>nul


[ Last edited by bluewaterx on 2009-11-4 at 21:37 ]

2009-10-22 18:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pkto
初级用户





积分 62
发帖 62
注册 2007-7-14
状态 离线
『第 2 楼』:  

呀,好实用的一段批处理,感谢呀!偶也提供一个吧,不过太简陋了:


Start ""/w "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.exe" %1
xcopy /m/d/y/s "d:\资料\*.*" "e:\备份资料\"


是用来每次编辑完“d:\资料”里的稿件后,在关闭word时,就会自动备份一下的

2009-10-22 20:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
RuiIsRui
新手上路




积分 14
发帖 13
注册 2009-7-6
状态 离线
『第 3 楼』:  

偶都看不懂,看来要好好学习了~



天行健  君子以自强不息
2009-10-23 21:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slw218856
初级用户





积分 133
发帖 75
注册 2008-8-3
状态 离线
『第 4 楼』:  

%1有何用意?谢谢

2009-11-5 01:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bluewaterx
初级用户





积分 132
发帖 68
注册 2008-7-29
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by slw218856 at 2009-11-5 01:04 AM:
%1有何用意?谢谢

...接收参数1

eg:

call :subA "hello" 123
pause&exit


:subA
    echo %1 %2
    goto :eof

2009-11-6 08:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xiaodoudou
新手上路





积分 1
发帖 1
注册 2009-11-14
状态 离线
『第 6 楼』:  

如果我要修改路径比如修改为e:\该如何修改``我只能修改到在E:\``但是只能备份一个

2009-11-16 02:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: