中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 23:44
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于自动备份批处理里的难点
可打印版本  1,241 / 8
第1楼 AppleWolf 发表于 2007-04-01 11:36
初级用户 发帖 41 积分 110
关于自动备份批处理里的难点
比如有一个目录需要备份,但是根据情况,里面多种类型的文件比如.txt , .doc .xls, .psd等是需要备份的,但是其它如.dll .exe之类其它类型都不要。
根据上述,我写的自动批处理文件读两个配置文件,一个是需备份路径配置文件path.ini,另一个就是文件类型指定文件 filetype.ini,

其中filetype.ini文件内写的内容格式就是如下,一行一个类型记录。
*.txt
*.cdr
*.ai
*.doc
*.ct
......

其长度不限,可自由指定。

想请教一下各位前辈,上面这种从配置文件顺序读入文件类型,然后用XCOPY来完成备份的方式,该如何用批处理来解决呢?!

:(:(:(:(:(
第2楼 everest79 发表于 2007-04-01 12:20
金牌会员 发帖 1,127 积分 2,564
你简化下配置文件
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:\
第3楼 AppleWolf 发表于 2007-04-02 03:46
初级用户 发帖 41 积分 110
谢谢 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: to
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% to successful >>%selfpath%backup.log

[ Last edited by AppleWolf on 2007-4-1 at 03:23 PM ]
第4楼 flyinspace 发表于 2007-04-02 04:07
银牌会员 发帖 517 积分 1,206
呵呵。最好全用 echo 指出来。

代码也全部重写好了。

要不然。。你可能会后悔地。

代码不够严谨。。还不能实用。。
第5楼 AppleWolf 发表于 2007-04-02 04:23
初级用户 发帖 41 积分 110
Originally posted by flyinspace at 2007-4-1 03:07 PM:
呵呵。最好全用 echo 指出来。

代码也全部重写好了。

要不然。。你可能会后悔地。

代码不够严谨。。还不能实用。。


是不是有很严重的错误?!

在调试时,ECHO是开启的

关于实用。。。。。。。上面是代码片断,可能是无法独立拷贝粘贴后就能用的。
第6楼 flyinspace 发表于 2007-04-02 04:30
银牌会员 发帖 517 积分 1,206
呵呵,你自己仔细分析一下就知道了。

我的方法比较赖皮的。。

嘿。。把c++的算法全都弄到批处理中来了。

而且发现应用还比较成功呢:)
第7楼 AppleWolf 发表于 2007-04-02 04:39
初级用户 发帖 41 积分 110
Originally posted by flyinspace at 2007-4-1 03:30 PM:
呵呵,你自己仔细分析一下就知道了。

我的方法比较赖皮的。。

嘿。。把c++的算法全都弄到批处理中来了。

而且发现应用还比较成功呢:)



还望能不吝赐教。。。。。帮忙纠正一下。。。。。
第8楼 flyinspace 发表于 2007-04-02 04:53
银牌会员 发帖 517 积分 1,206
你先给出全部代码咯。
第9楼 AppleWolf 发表于 2007-04-02 07:31
初级用户 发帖 41 积分 110
Originally posted by flyinspace at 2007-4-1 03:53 PM:
你先给出全部代码咯。


全部代码有两百十七行,会不会各位大大没有兴趣看啊,而且,本人水平实在低下,不少地方代码都是超弱智型的,实在。。。。实在不好意思拿出来。。。。。。。。。。


[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023