Board logo

标题: [求助]怎么写自动备份QQ聊天记录的批处理? [打印本页]

作者: wjgyz740526     时间: 2010-5-18 19:57    标题: [求助]怎么写自动备份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.上面得代码哪错了??

谢谢
作者: Hanyeguxing     时间: 2010-5-18 23:14
什么版本的QQ?
作者: wjgyz740526     时间: 2010-5-19 08:42
问题就在于此,如果是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

但是没用
作者: Hanyeguxing     时间: 2010-5-19 12:14
1,查找行尾是否为bin\QQ.exe来判断是否为QQ2009
2,如果%r%为2009QQ的主程序路径的话,则,其USER目录为%r:~0,-10%Users

[ Last edited by Hanyeguxing on 2010-5-19 at 12:16 ]
作者: wjgyz740526     时间: 2010-5-20 08:51


  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%这个可能会出错的
作者: Hanyeguxing     时间: 2010-5-20 13:54


  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为记录目录。
作者: wjgyz740526     时间: 2010-5-20 16:28
刚又认真看了下set帮助,总算理解了——以前一直没这么用过,谢谢楼上的兄弟!

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

谢谢!