Board logo

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

作者: wjgyz740526     时间: 2010-5-18 19:57    标题: [求助]怎么写自动备份QQ聊天记录的批处理?
想写一个自动备份QQ聊天记录的批处理,坛子里搜了下,有现成的:www.cn-dos.net/forum/viewthrea ... 很不错,但是,有缺陷: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
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
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帮助,总算理解了——以前一直没这么用过,谢谢楼上的兄弟! 其实 昨天我用自己的那个笨方法已经成功了,但是觉得那样实在是笨才提问的 谢谢!