中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎么写自动备份QQ聊天记录的批处理?
作者:
标题: [求助]怎么写自动备份QQ聊天记录的批处理? 上一主题 | 下一主题
wjgyz740526
中级用户




积分 203
发帖 44
注册 2003-8-14
状态 离线
『楼 主』:  [求助]怎么写自动备份QQ聊天记录的批处理?

想写一个自动备份QQ聊天记录的批处理,坛子里搜了下,有现成的:http://www.cn-dos.net/forum/view ... B%E5%A4%87%E4%BB%BD
很不错,但是,有缺陷:1.使用了wmic来获取本地硬盘列表,我怕2k、xp不支持,还是用指定盘符好一点;2.现在的qq用户资料位于users目录中,和QQ.exe不在同一目录。我把它改了下,代码如下:

+++++++++++++++++++++++++++++++++++++++++++++++++++
@echo off
echo.
@echo 系统正在定位您QQ的路径,请稍等……
echo.
for /r %%a in (c d e f g h i j k l m n o p q r s t u v w x y z ) do (
        for /r "delims=" %%b in ('dir /s /b /a-d %%a:\QQ.exe 2^>NUL') do (if exist "%%b" set QQpath=%%~dpb&goto qq_path)
)
exit
:qq_path
echo 定位完毕,您QQ的路径为: %QQpath%
dir "%QQPath%" /ad /b /w|findstr "^[0-9]*$">%temp%\qqlist.txt
cd /d "%QQPath%"&&cd..&&dir .\users /ad /b /w|findstr "^[0-9]*$">>%temp%\qqlist.txt
@echo 本机所有的QQ号码如下:
@echo ------------------
type %temp%\qqlist.txt
@echo ------------------
for /f "tokens=*" %%i in (%temp%\list.txt) do set pp=%%i&call :copy

:copy
xcopy /s /c /h /q /r /y ".\%pp%" "D:\QQ资料备份\%pp%"

++++++++++++++++++++++++++++++++++++++++++++++++++++++

但是没有成功,请问:
1.怎样用变量来表示某个目录的上级目录?
2.上面得代码哪错了??

谢谢

2010-5-18 19:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

什么版本的QQ?



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-18 23:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjgyz740526
中级用户




积分 203
发帖 44
注册 2003-8-14
状态 离线
『第 3 楼』:  

问题就在于此,如果是2007、2008那么qq用户和qq.exe在同级目录,而2009、2010两者不在同一目录,所以我才需要知道怎样用变量来表示某个目录的上级目录?

我是两个情况都找一下,这样:

dir "%QQPath%" /ad /b /w|findstr "^[0-9]*$">%temp%\qqlist.txt
cd /d "%QQPath%"&&cd..&&dir .\users /ad /b /w|findstr "^[0-9]*$">>%temp%\qqlist.txt

但是没用

2010-5-19 08:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  

1,查找行尾是否为bin\QQ.exe来判断是否为QQ2009
2,如果%r%为2009QQ的主程序路径的话,则,其USER目录为%r:~0,-10%Users

[ Last edited by Hanyeguxing on 2010-5-19 at 12:16 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-19 12:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjgyz740526
中级用户




积分 203
发帖 44
注册 2003-8-14
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by Hanyeguxing at 2010-5-19 12:14 PM:
如果%r%为2009QQ的主程序路径的话,则,其USER目录为%r:~0,-10%Users

[ Last edited by Hanyeguxing on 2010-5-19 at 12:16 ]

你这个怎么出来的??你是认为安装到特定目录的吧?如果是自定义目录呢???所以%r:~0,-10%这个可能会出错的

2010-5-20 08:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by wjgyz740526 at 2010-5-20 08:51:


你这个怎么出来的??你是认为安装到特定目录的吧?如果是自定义目录呢???所以%r:~0,-10%这个可能会出错的

楼主真是愁死我了,以安装目录为D:\Program Files\QQ2009示例,QQ在D:\Program Files\QQ2009\Bin目录,记录是在D:\Program Files\QQ2009\Users。Bin和Users和安装目录的子目录。
如果%r%为2009QQ的主程序路径的话,则,其USER目录为%r:~0,-10%Users。也就是说,如果D:\Program Files\QQ2009\Bin\QQ.exe,,则D:\Program Files\QQ2009\Users为记录目录。



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-20 13:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjgyz740526
中级用户




积分 203
发帖 44
注册 2003-8-14
状态 离线
『第 7 楼』:  

刚又认真看了下set帮助,总算理解了——以前一直没这么用过,谢谢楼上的兄弟!

其实 昨天我用自己的那个笨方法已经成功了,但是觉得那样实在是笨才提问的

谢谢!

2010-5-20 16:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: