中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-18 08:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎么写自动备份QQ聊天记录的批处理? 查看 2,103 回复 6
楼 主 [求助]怎么写自动备份QQ聊天记录的批处理? 发表于 2010-05-18 19:57 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
UID 8600
性别 男
状态 离线
想写一个自动备份QQ聊天记录的批处理,坛子里搜了下,有现成的:http://www.cn-dos.net/forum/viewthread.php?tid=30934&fpage=1&highlight=qq%2B%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 "^*$">%temp%\qqlist.txt
cd /d "%QQPath%"&&cd..&&dir .\users /ad /b /w|findstr "^*$">>%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.上面得代码哪错了??

谢谢
2 发表于 2010-05-18 23:14 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
3 发表于 2010-05-19 08:42 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
UID 8600
性别 男
状态 离线
问题就在于此,如果是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

但是没用
4 发表于 2010-05-19 12:14 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,查找行尾是否为bin\QQ.exe来判断是否为QQ2009
2,如果%r%为2009QQ的主程序路径的话,则,其USER目录为%r:~0,-10%Users

[ Last edited by Hanyeguxing on 2010-5-19 at 12:16 ]
5 发表于 2010-05-20 08:51 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
UID 8600
性别 男
状态 离线
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%这个可能会出错的
6 发表于 2010-05-20 13:54 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
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为记录目录。
7 发表于 2010-05-20 16:28 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
UID 8600
性别 男
状态 离线
刚又认真看了下set帮助,总算理解了——以前一直没这么用过,谢谢楼上的兄弟!

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

谢谢!
论坛跳转: