中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于自动备份批处理里的难点
作者:
标题: 关于自动备份批处理里的难点 上一主题 | 下一主题
AppleWolf
初级用户





积分 110
发帖 41
注册 2007-3-31
状态 离线
『楼 主』:  关于自动备份批处理里的难点

比如有一个目录需要备份,但是根据情况,里面多种类型的文件比如.txt , .doc .xls, .psd等是需要备份的,但是其它如.dll .exe之类其它类型都不要。 根据上述,我写的自动批处理文件读两个配置文件,一个是需备份路径配置文件path.ini,另一个就是文件类型指定文件 filetype.ini, 其中filetype.ini文件内写的内容格式就是如下,一行一个类型记录。 *.txt *.cdr *.ai *.doc *.ct ...... 其长度不限,可自由指定。 想请教一下各位前辈,上面这种从配置文件顺序读入文件类型,然后用XCOPY来完成备份的方式,该如何用批处理来解决呢?! :(:(:(:(:(


2007-4-1 11:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  

你简化下配置文件 D:\tools=*.txt;*.cdr;*.ai;*.doc;*.ct for /f "tokens=1* delims==" %%i in (ini) do set srcfile=%%j&&pushd "%%i" for /f "delims=" %%i in ('dir /b /s %srcfile%') do copy %%i E:\


2007-4-1 12:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
AppleWolf
初级用户





积分 110
发帖 41
注册 2007-3-31
状态 离线
『第 3 楼』:  谢谢 everest79

谢谢指点,不过那样写是为了能方便清楚,呵呵,我找到了一个解决办法,但是说实在的,多年不碰DOS了,现在的DOS都不太明白了。 我的解决方法如下。可能错误非常多,是参考了论坛里的很多贴子七拼八凑起来的,还望各位能多多指点。 ::备份部份,此写法支持多配置备份 for /f "tokens=*" %%i in (%selfpath%path.ini) do ( set/a n=n+1&md %usbdisk%\%nowdate%\%n% >nul 2>nul&set needbackup=%%i&for /f "tokens=*" %%i in (%selfpath%datatype.ini) do ( set filetype=%%i&call :backupmod ) ) ::等待十秒钟,使设备回写完全完成。 ping 127.0.0.1 -n 10 >nul 2>nul goto removeusbdisk ::备份操作执行模组 :backupmod ::显示备份信息 echo Start backup processing: [%needbackup%\%filetype%] to [%usbdisk%\%nowdate%\%n%] xcopy /c /h /i /q /e /s /y %needbackup%\%filetype% %usbdisk%\%nowdate%\%n% >nul 2>nul ::XCOPY出错判断部份,不进行正常完成判断,只进行出错判断。 IF ERRORLEVEL 4 goto backup4 IF ERRORLEVEL 3 goto backup3 IF ERRORLEVEL 2 goto backup2 IF ERRORLEVEL 1 goto backup1 ::如果没有出错,则写入日志 echo %nowdate% %nowtime% [%needbackup%\%filetype%] to [%usbdisk%\%nowdate%] successful >>%selfpath%backup.log [ Last edited by AppleWolf on 2007-4-1 at 03:23 PM ]


2007-4-2 03:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 4 楼』:  

呵呵。最好全用 echo 指出来。 代码也全部重写好了。 要不然。。你可能会后悔地。 代码不够严谨。。还不能实用。。




知,不觉多。不知,乃求知
2007-4-2 04:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
AppleWolf
初级用户





积分 110
发帖 41
注册 2007-3-31
状态 离线
『第 5 楼』:  

Originally posted by flyinspace at 2007-4-1 03:07 PM: 呵呵。最好全用 echo 指出来。 代码也全部重写好了。 要不然。。你可能会后悔地。 代码不够严谨。。还不能实用。。
是不是有很严重的错误?! 在调试时,ECHO是开启的 关于实用。。。。。。。上面是代码片断,可能是无法独立拷贝粘贴后就能用的。


2007-4-2 04:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 6 楼』:  

呵呵,你自己仔细分析一下就知道了。 我的方法比较赖皮的。。 嘿。。把c++的算法全都弄到批处理中来了。 而且发现应用还比较成功呢:)




知,不觉多。不知,乃求知
2007-4-2 04:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
AppleWolf
初级用户





积分 110
发帖 41
注册 2007-3-31
状态 离线
『第 7 楼』:  

Originally posted by flyinspace at 2007-4-1 03:30 PM: 呵呵,你自己仔细分析一下就知道了。 我的方法比较赖皮的。。 嘿。。把c++的算法全都弄到批处理中来了。 而且发现应用还比较成功呢:)
还望能不吝赐教。。。。。帮忙纠正一下。。。。。


2007-4-2 04:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 8 楼』:  

你先给出全部代码咯。




知,不觉多。不知,乃求知
2007-4-2 04:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
AppleWolf
初级用户





积分 110
发帖 41
注册 2007-3-31
状态 离线
『第 9 楼』:  

Originally posted by flyinspace at 2007-4-1 03:53 PM: 你先给出全部代码咯。
全部代码有两百十七行,会不会各位大大没有兴趣看啊,而且,本人水平实在低下,不少地方代码都是超弱智型的,实在。。。。实在不好意思拿出来。。。。。。。。。。


2007-4-2 07:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: