@echo off
cls
title 欢迎使用QQ/TM资料备份器!
if /i "%~1"=="/help" goto help
if /i "%~1"=="/?" goto help
if /i "%~1"=="/cfg" goto crcfg
if /i "%~1"=="/hidden" goto begain
if not "%~1"=="" (
(
echo set Shell=wscript.createObject^(^"wscript.shell^"^)
echo Shell.Run ^"%~0 /hidden^", 0, TRUE
)>"%temp%\hidden.vbs"
start /min %temp%\hidden.vbs
exit
)
call :version
call :vbs1 5
:begain
cls
color 07
title 系统初始化...
echo.
echo 程序正在初始化,请稍候...
if not exist %~dp0baktec.cfg goto :settings
set "cfg=%~dp0baktec.cfg"
set "CFG=%CFG:"=%"
for /f "tokens=* delims= eol=;" %%i in (%cfg%) do (set %%i)
if not "%val%"=="1" (
cls&title 错误...
echo.&echo 读取配置出错!配置文件有误或者配置参数不正确!
echo.
if /i "%~1"=="/hidden" exit
pause
exit
)
if "%delcfg%"=="1" (del "%cfg%" /f /q>nul)
echo.&echo 读取配置文件成功;
call :vbs1 1
goto :start
:settings
rem {程序设置(根据实际需要自己更改):
rem 压缩文件存放目录,路径不得含有空格字符,目录路径必须以斜杠字符“\”结尾!自身所在目录:%~dp0
set file.rar=%~dp0
rem ;压缩文件注释;
set text="%temp%\text.tmp"
rem ;压缩文件密码;
set pwd=123456
rem ;压缩的文件列表;
set lst1="%temp%\list1.tmp"
rem ;不压缩的文件列表;
set lst2="%temp%\list2.tmp"
rem ;设置搜索盘符;
set drive=c d e f g h i j k
rem ;备份日志
set file.log=%~dp0QQ备份日志.log
rem 设置完成。}
echo.&echo 读取配置文件成功;
:start
echo.
echo 载入配置完成,正在设置程序运行环境...
set path=%path%;%~dp0
setlocal enabledelayedexpansion
call :deltmp
if exist %file.log% del /f /q %file.log%>nul
if not exist %file.rar% md %file.rar%>nul
cd /d %file.rar%>nul
echo.
echo 删除临时文件完成,正在查找压缩程序RAR.EXE...
set rar.exe="%~dp0rar.exe"
if not exist %rar.exe% set rar.exe="c:\program files\winrar\rar.exe"
if not exist %rar.exe% set rar.exe="d:\program files\winrar\rar.exe"
if not exist %rar.exe% (
for %%a in (%drive%) do (
if exist %%a: (
for /f "delims=" %%b in ('dir /s /b /a-d "%%a:\rar.exe" 2^>nul') do (
if not "%%b"=="" (
set "rar.exe=%%~sb"
)))))
if not exist %rar.exe% (
cls
title 出错
echo.
echo 在磁盘%drive%均未找到文件rar.exe!
echo.
echo 备份无法进行!按任意键退出...
if /i "%~1"=="/hidden" exit
pause>nul
exit
)
echo.
echo 找到以下RAR.EXE:%rar.exe%
echo.
echo 初始化完成...
call :vbs1 1
rem 以下代码针对QQ2009版及早期版本;
cls
title 正在搜索QQ2009及更低版本QQ的用户数据存放目录,请稍候...
echo.
echo 正在搜索QQ2009版或更低版本的QQ用户资料存放目录,请稍候...
echo.
set num1=0
for %%a in (%drive%) do (
for /f "delims=" %%b in ('dir /s /b /a-d "%%a:\qq.exe" 2^>nul') do (
if not "%%b"=="" (
if exist "%%~dpbNEWFACE" (
set /a num1+=1
ECHO.
echo 找到了第!num1!个QQ2009或更低QQ版本!
echo ________________________________________________________________________________
echo 安装路径:%%~dpb
echo QQ.exe路径:%%b
rem 写入备份日志;
(
echo.
echo 第!num1!个QQ2009或更低版本QQ.EXE
ECHO 目录位置:%%b
)>>%file.log%
(
rem {写入要打包的文件;
rem 添加要保存的文件名或目录,如.db数据库文件;
rem 格式:echo %~dp0文件/目录名;文件/目录名支;持通配符?和*。
echo %%~dpbAutoLogin.dat
echo %%~dpbLoginUinList.dat
echo %%~dpbexstatcount.dat
echo %%~dpbQQGlobal.db
echo %%~dpbQQlog.txl
echo %%~dpbQQ.tlg
echo %%~dpbdlg.0
rem 添加不能超过此行!}
)>>%lst1%
rem 显示登陆过的QQ号码;
set num2=0
echo.
echo 该路径下登陆过的QQ号码有:
echo.
for /f "delims=" %%c in ('dir /s /b /ad "%%~dpb" 2^>nul') do (
if not "%%c"=="" (
if exist "%%c\msgex.db" (
set /a num2+=1
echo %%c>>%lst1%
echo QQ!num2!:%%~nc
(
rem {用户目录要排除的文件;
rem 添加用户目录下不保存的文件名或目录,如自定义头像等无用信息。
rem 格式:echo %%c\文件/目录名;文件/目录名;支持通配符?和*。
echo %%c\QQPetFile
echo %%c\UserHead
echo %%c\QInterLive
echo %%c\QQSpaceFile
echo %%c\temp
echo %%c\spf
echo %%c\CacheFolder
echo %%c\PanelData
echo %%c\QQPhoto
echo %%c\Temp
echo %%c\FlashScene
rem 添加不能超过此行!}
)>>%lst2%
)
)
)
if "!num2!"=="0" (
echo 该目录下没有登陆过的QQ记录...
echo 该版本未登陆过QQ号码。>>%file.log%
) else (
ECHO 该位置/版本共登陆过 !num2! 个QQ号码。>>%file.log%
)
call :text "QQ2009或更低QQ版本" "%%b"
call :dosrar "%file.rar%QQBACKUP_QQ2009_!num1!.RAR"
)
)
)
)
if "%num1%"=="0" (
echo 未找到QQ2009或更低QQ版本的QQ用户资料...
echo 未找到QQ2009或更低QQ版本的QQ用户资料。>>%file.log%
)
call :vbs1 2
cls
title 正在搜索QQ2010及更高版本QQ的用户数据存放目录,请稍候...
echo.
echo 正在搜索QQ2010版或更高版本的QQ用户资料存放目录,请稍候...
echo.
set num1=0
for %%a in (%drive%) do (
for /f "delims=" %%b in ('dir /s /b /ad "%%a:\all users" 2^>nul') do (
if exist "%%b\qq\misc" (
if exist "%%b\qq\Registry.db" (
set /a num1+=1
echo ________________________________________________________________________________
echo 找到了第!num1!个QQ用户文件存放路径:%%~dpb
(
rem 备份日志
echo.
echo 第!num1!个用户数据存放目录
echo 版本:QQ2010或更高
ECHO 目录位置:%%b\
)>>%file.log%
(
rem {写入要打包的文件;
rem 添加要保存的文件名或目录,如DLL扩展文件;
rem 格式:echo %~dp0文件/目录名;文件/目录名支持通配符?和*。
echo %%b
rem 添加不能超过此行!}
)>>%lst1%
rem 登陆过的QQ号码;
set num2=0
echo.
echo 该路径下登陆过的QQ号码有:
echo.
for /f "delims=" %%c in ('dir /s /b /ad "%%~dpb" 2^>nul') do (
if not "%%c"=="" (
if exist "%%c\CustomFace.db" (
set /a num2+=1
echo QQ!num2!:%%~nc
(
rem {写入要打包的文件;
rem 添加要保存的文件名或目录,如DLL扩展文件;
rem 格式:echo %~dp0文件/目录名;文件/目录名支持通配符?和*。
echo %%c
rem 添加不能超过此行!}
)>>%lst1%
(
rem {写入要排除的文件;
rem 添加用户目录下不保存的文件名或目录,如自定义头像等无用信息。
rem 格式:echo %%c\文件/目录名;文件/目录名支持通配符?和*。
echo %%c\QQPetFile
echo %%c\UserHead
echo %%c\QInterLive
echo %%c\QQSpaceFile
echo %%c\temp
rem 添加不能超过此行!}
)>>%lst2%
)
)
)