我是前天才开始接触DOS的,以前不会DOS,但是自从学了一点Linux之后,发现DOS也很简单。
昨天一个同事想要备份QQ资料,所以想何不用批处理来实现,下午就开始研究批处理,晚上写到2点多,今天又优化了很多,终于写成了这个批处理,希望这里的高手多多指点:
除了那个for之外,其他都是原创。学到了很多东西
@echo off
color 2f
Title 批处理 备份恢复QQ个人设置+聊天记录 -后知后觉 QQ:272544 http://www.coos.cn
rem rarexe //定义winrar路径,一般默认
set rarexe=c:\program files\winrar\winrar.exe
echo.
echo #############################################
echo 初学批处理,学习中编写了这个简单的例子
echo 我的QQ:272544 http://www.coos.cn
echo #############################################
:cdQQ
echo.
echo.
@echo 系统正在定位您QQ的路径,请稍等……
echo.
for /f "skip=1" %%a in ('wmic logicaldisk where "DriveType=3" get caption') do (
for /f "delims=" %%_ in ('dir /s/b/a-d %%a\QQ.exe 2^>nul') do (if exist "%%_" set QQpath=%%~dp_&goto :ovv)
)
:ovv
echo.
@echo 定位完毕,您QQ的路径为: %QQpath%
:Input
@echo.
@echo 本机所有的QQ号码如下:
@echo ------------------
for /f %%i in ('dir "%QQPath%" /ad /b /w^|findstr "^*$"') do echo %%i
@echo ------------------
echo.
set QQNumber=
set /p QQNumber=请输入您所要备份的QQ号码:
cls
echo.
if "%QQNumber%"=="" echo 你没有输入任何号码! && goto Input
echo %QQNumber%|findstr "^*$">nul && goto dList || echo 您输入的不是一个QQ号码! && goto Input
:dList
if not exist d:\QQbak mkdir d:\QQbak
IF EXIST "%QQpath%\%QQNumber%" goto menu
goto error
:menu
cls
echo.
echo.
@echo -----------------------------------------------
@echo QQ:%QQNumber%您好!
@echo 您的QQ路径为:%QQpath%
@echo -----------------------------------------------
@echo.
@echo 1 = 备份 QQ设置+聊天记录
@echo.
@echo 2 = 恢复 QQ设置+聊天记录
@echo.
@echo 3 = 重新输入 QQ号码
@echo.
@echo Q = 取消/退出
@echo.
@echo.
set choose=
set /p choose=请选择:
if "%choose%"=="" goto menu
if "%choose%"=="1" cls && goto bak
if "%choose%"=="2" cls && goto reback
if "%choose%"=="3" cls && goto Input
if "%choose%"=="q" (goto exit) else echo ! 选择错误,请重新输入……
@echo.
pause
@echo.
goto menu
:bak
@echo ------------------------------------------------------
@echo 正在备份QQ:%QQNumber%的设置+聊天记录,请稍等...
@echo ------------------------------------------------------
%QQpath:~0,2%
cd "%QQPath%"
"%rarexe%" a d:\QQbak\%QQNumber%.rar "%QQNumber%"
@echo ---------------------------------------------------
@echo QQ:%QQNumber%的设置+聊天记录已备份至:
@echo D:\QQbak\%QQNumber%.rar
@echo ----------------------------------------------------
@echo.
pause
goto menu
:error
cls
cd d:\QQbak
@echo ---------------------------------------------------
@echo QQ号码设置错误,%QQNumber%不存在,请重新输入……
@echo ---------------------------------------------------
goto Input
:reback
if not exist d:\QQbak\%QQNumber%.rar. (
@echo !您的QQ没有备份,返回重新选择……
@echo.
pause
@echo.
goto menu
) else (
@echo ------------------------------------------------------
@echo 正在恢复QQ:%QQNumber%的设置+聊天记录,请稍等...
@echo ------------------------------------------------------
@echo.
%QQpath:~0,2%
cd "%QQPath%"
"%rarexe%" x d:\QQbak\%QQNumber%.rar "%QQPath%"
@echo.
@echo ---------------------------------------------------
@echo QQ:%QQNumber%的设置+聊天记录已恢复:
@echo ----------------------------------------------------
@echo.
pause
goto menu
)
:exit
exit
Last edited by zmt1982 on 2007-5-25 at 05:57 PM ]