无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3624|回复: 6
打印 上一主题 下一主题

写了个用户资料和聊天记录的备份程序

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-24 08:39:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个用户资料和聊天记录的备份程序,并且结合了在pe下安装操作系统,运行本程序可以自动备份原系统中各用户的我的文档、桌面、收藏夹和QQ、TM的聊天记录,如果光盘目录如下:
cd:
|-----windows----------2K3EE------I386
|                    |___XPPro____I386
|
|____SoftWare
|____DRVS


那么资料备份完之后可以选择安装操作系统2003&xp、选择安装是否在同一分区安装双系统(需要修改winnt.sif)、选择是否复制常用软件和驱动包以自动安装。

脚本内容如下:
++++++++++++++++++++++++++++++++++++++++++++

@echo off
color 0E
echo %windir%|find /I "WXPE">NUL
If "%Errorlevel%"=="0" (set inst=pe&&goto pe) else set inst=win&&goto win_bak
exit
:win_bak
Title Windows 用户资料备份...
echo.
echo ****************************************************************************
echo.
echo                    Windows 用户资料及聊天记录备份向导
echo.
echo ****************************************************************************
echo.&echo.&echo.&echo     按任意键开始备份...
pause>NUL 2>NUL
cls
echo.
echo ****************************************************************************
echo.
echo             正在备份Windows所有用户的文档文件夹、收藏夹、桌面
echo.
echo ****************************************************************************
cd /d "%ALLUSERSPROFILE%"&&cd..
dir /a:d /b >"%temp%\list.txt"
for /f "tokens=*" %%i in (%temp%\list.txt) do set pp=%%i&call:copy
echo.&echo.&echo.&echo     已完成Windows所有用户的文档文件夹、收藏夹、桌面资料备份!&echo.&echo     按任意键开始备份 QQ 聊天记录...
pause>NUL 2>NUL
goto QQ
:pe
Title Windows 用户资料备份及系统安装...
cls
echo.
echo ****************************************************************************
echo.
echo                     Windows 用户资料备份及系统安装
echo.
echo ****************************************************************************
echo.&echo.&echo.&echo      按 A 键备份用户资料后安装系统,按 B 键跳过资料备份直接安装系统!&echo.
Set Choice=
Set /P Choice=     请输入你的选择:
If "%Choice%"=="" Goto pe
If /I "%Choice%"=="A" goto pe_bak
If /I "%Choice%"=="B" goto sysinst
goto pe
:pe_bak
cls
echo.
echo ****************************************************************************
echo.
echo                     Windows 用户资料备份及系统安装
echo.
echo ****************************************************************************
echo.&echo.&echo     因无法确保备份资料的正确与完整,请手工操作并复查!按任意键继续...
echo.
pause>NUL 2>NUL
echo     正在备份Windows所有用户的文档文件夹、收藏夹、桌面,请稍候...
echo.
cd /d "C:\Documents and Settings">NUL 2>NUL
dir /a:d /b >"%temp%\list.txt"
for /f "tokens=*" %%i in (%temp%\list.txt) do set pp=%%i&call:copy
echo.
echo     已完成Windows所有用户的文档文件夹、收藏夹、桌面资料备份!按任意键继续...
pause>NUL 2>NUL
goto QQ
:copy
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\桌面\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\桌面" "D:\资料备份\%pp%_用户\桌面\">NUL 2>NUL
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\Desktop\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\Desktop" "D:\资料备份\%pp%_用户\桌面\">NUL 2>NUL
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\Favorites\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\Favorites" "D:\资料备份\%pp%_用户\收藏夹\">NUL 2>NUL
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\My Documents\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\My Documents" "D:\资料备份\%pp%_用户\我的文档\">NUL 2>NUL
DEL /Q /S /A:R /A:H /A:S /A:A "D:\资料备份\*.lnk">NUL 2>NUL
goto :eof
:QQ
Title 正在备份 QQ 聊天记录...
cls
echo.
echo ****************************************************************************
echo.
echo                          正在备份 QQ 聊天记录
echo.
echo ****************************************************************************
echo.
for %%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 /f "delims=" %%b in ('dir /s /b /a-d %%a:\QQ.exe 2^>NUL') do (if exist "%%b" set QQLpath=%%~dpb&set QQFpath=%%~fb&goto qq_path)
)
echo.&echo.&echo     没有找到QQ!
pause>NUL 2>NUL
goto TM
:TM
Title 正在备份 TM 聊天记录...
cls
echo.
echo ****************************************************************************
echo.
echo                          正在备份 TM 聊天记录
echo.
echo ****************************************************************************
echo.
for %%c 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 /f "delims=" %%d in ('dir /s /b /a-d %%c:\TM.exe 2^>NUL') do (if exist "%%d" set TMLpath=%%~dpd&set TMFpath=%%~fd&goto tm_path)
)
echo.&echo.&echo     没有找到TM!
pause>NUL 2>NUL
goto sysinst
:qq_path
echo     定位完毕,QQ的路径为: %QQFpath%
echo.
if /i %inst%==pe (
   if /i %QQFpath:~0,1%==c (echo     正在对需要备份的QQ号码进行列表!) else echo     QQ没有安装在系统分区,无需备份!按任意键继续!&&pause>NUL 2>NUL&goto TM
dir "%QQLpath%" /ad /b /w 2^>NUL|findstr "^[0-9]*$">%temp%\qqlist.txt
dir "%QQLpath%\Users" /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%QQLpath%"&&cd..&&dir .\Users /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%QQLpath%"&&cd..&&dir /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
echo.
echo     本机所有的QQ号码如下,备份中,请稍候...
echo.
echo                           ------------------
for /f "tokens=*" %%i in (%temp%\qqlist.txt) do echo                               %%i&set pp=%%i&call:QQ_copy
echo                           ------------------
echo.
echo     已完成本机所有号码的QQ聊天资料备份!按任意键继续...
pause>NUL 2>NUL
goto TM
)
if /i %QQFpath:~0,1%==%windir:~0,1% (echo     正在对需要备份的QQ号码进行列表!) else echo     QQ没有安装在系统分区,无需备份!按任意键继续!&&pause>NUL 2>NUL&goto TM
dir "%QQLpath%" /ad /b /w 2^>NUL|findstr "^[0-9]*$">%temp%\qqlist.txt
dir "%QQLpath%\Users" /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%QQLpath%"&&cd..&&dir .\Users /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%QQLpath%"&&cd..&&dir /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
echo.
echo     本机所有的QQ号码如下,备份中,请稍候...
echo.
echo                           ------------------
for /f "tokens=*" %%i in (%temp%\qqlist.txt) do echo                               %%i&set pp=%%i&call:QQ_copy
echo                           ------------------
echo.
echo     已完成本机所有号码的QQ聊天资料备份!按任意键继续...
pause>NUL 2>NUL
goto TM
:tm_path
echo     定位完毕,TM的路径为: %TMFpath%
echo.
if /i %inst%==pe  (
  if /i %TMFpath:~0,1%==c (echo     正在对需要备份的TM号码进行列表!) else echo     TM没有安装在系统分区,无需备份!按任意键继续!&&pause>NUL 2>NUL&goto sysinst
dir "%TMLpath%" /ad /b /w 2^>NUL|findstr "^[0-9]*$">%temp%\qqlist.txt
dir "%TMLpath%\Users" /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%TMLpath%"&&cd..&&dir .\ /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%TMLpath%"&&cd..&&dir .\Users /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
echo.
echo     本机所有的TM号码如下,备份中,请稍候...
echo.
echo                           ------------------
for /f "tokens=*" %%i in (%temp%\qqlist.txt) do echo                            %%i&set pp=%%i&call:TM_copy
echo                           ------------------
echo.
echo     已完成本机所有号码的TM聊天资料备份!按任意键继续...
pause>NUL 2>NUL
goto sysinst
)
if /i %TMFpath:~0,1%==%windir:~0,1% (echo     正在对需要备份的TM号码进行列表!) else echo     TM没有安装在系统分区,无需备份!按任意键继续!&&pause>NUL 2>NUL&goto sysinst
dir "%TMLpath%" /ad /b /w 2^>NUL|findstr "^[0-9]*$">%temp%\qqlist.txt
dir "%TMLpath%\Users" /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%TMLpath%"&&cd..&&dir .\ /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
cd /d "%TMLpath%"&&cd..&&dir .\Users /ad /b /w 2^>NUL|findstr "^[0-9]*$">>%temp%\qqlist.txt
echo.
echo     本机所有的TM号码如下,备份中,请稍候...
echo.
echo                           ------------------
for /f "tokens=*" %%i in (%temp%\qqlist.txt) do echo                            %%i&set pp=%%i&call:TM_copy
echo                           ------------------
echo.
echo     已完成本机所有号码的TM聊天资料备份!按任意键继续...
pause>NUL 2>NUL
goto sysinst
:QQ_copy
if exist "%QQLpath%\Users\%pp%" xcopy /s /c /h /q /r /y "%QQLpath%\Users\%pp%" "D:\资料备份\QQ聊天记录\%pp%\">NUL 2>NUL
if exist "%QQLpath%\%pp%" xcopy /s /c /h /q /r /y "%QQLpath%\%pp%" "D:\资料备份\QQ聊天记录\%pp%\">NUL 2>NUL
cd /d "%QQLpath%"&&cd..&&if exist ".\%pp%" xcopy /s /c /h /q /r /y ".\%pp%" "D:\资料备份\QQ聊天记录\%pp%\">NUL 2>NUL
cd /d "%QQLpath%"&&cd..&&if exist ".\Users\%pp%" xcopy /s /c /h /q /r /y ".\Users\%pp%" "D:\资料备份\QQ聊天记录\%pp%\">NUL 2>NUL
goto :eof
:TM_copy
if exist "%TMLpath%\Users\%pp%" xcopy /s /c /h /q /r /y "%TMLpath%\Users\%pp%" "D:\资料备份\TM聊天记录\%pp%\">NUL 2>NUL
if exist "%TMLpath%\%pp%" xcopy /s /c /h /q /r /y "%TMLpath%\%pp%" "D:\资料备份\TM聊天记录\%pp%\">NUL 2>NUL
cd /d "%TMLpath%"&&cd..&&if exist ".\%pp%" xcopy /s /c /h /q /r /y ".\%pp%" "D:\资料备份\TM聊天记录\%pp%\">NUL 2>NUL
cd /d "%TMLpath%"&&cd..&&if exist ".\Users\%pp%" xcopy /s /c /h /q /r /y ".\Users\%pp%" "D:\资料备份\TM聊天记录\%pp%\">NUL 2>NUL
goto :eof
:sysinst
Title 正在安装操作系统...
cls
For %%K In (Z Y X W V U T S R Q P O N M L K J I H G F E D) Do If Exist %%K:\Windows\2K3EE\i386\winnt32.exe Set CDROM=%%K else goto error
if /i %inst%==win goto end
if /i %inst%==pe goto begin
goto :eof

:begin
set sys1=Windows Server 2003 E.E.SP2 精简版
set sys2=Windows XP pro SP3 精简版
cls
echo.
echo ****************************************************************************
echo.
echo.                           开始安装操作系统...
echo.
echo ****************************************************************************
echo.&echo.&echo     注意:  如果你想干净安装操作系统,那么安装操作系统之前,请先格式化&echo.&echo             你的目标分区!&echo.&echo.&echo.&echo.&echo     按任意键继续...
pause>NUL 2>NUL
cls
echo.
echo ****************************************************************************
echo.
echo.   请选择您要安装的操作系统:
echo.
echo                        A. %sys1%
echo                        B. %sys2%
echo.   
echo ****************************************************************************
echo.
Set Choice=
Set /P Choice=     请输入您的选择 A 或 B :
If "%Choice%"=="" Goto sysinst
If /I "%Choice%"=="A" set sys=2003&goto 1
If /I "%Choice%"=="B" set sys=xp&goto 1
Goto begin
:1
cls
echo.
echo ****************************************************************************
echo.
If /i "%sys%" == "2003" (echo                 安装:%sys1%......) else echo                 安装:%sys2%......
echo.
echo ****************************************************************************
echo.
SET /P drive_letter=     请输入你要选择安装的分区(C/D/E/F...)
echo.
if /I "%drive_letter%"=="" goto 1
if /I not "%drive_letter%"=="" goto 2
Goto 1
:2
cls
echo.
echo ****************************************************************************
echo.
echo                        想要在同一分区安装双系统吗?
echo.
echo ****************************************************************************
echo.
Set Ch=
Set /P Ch=     请输入 Y (是的,我要安装双系统) 或 N (不,我只安装单系统):
If "%Ch%"=="" Goto 2
If /I "%Ch%"=="Y" goto 3
If /I "%Ch%"=="N" goto 4
goto 2
:3
cls
echo.
echo ****************************************************************************
echo.
echo.
echo                  请问需要复制驱动包和常用软件到本地硬盘并安装吗?
echo.
echo ****************************************************************************
echo.
Set Ch=
Set /P Ch=     请输入 Y (是的,我需要安装驱动和软件) 或 N (不,我只安装系统):
If "%Ch%"=="" Goto 3
If /I "%Ch%"=="Y" call:copy&&call:two
If /I "%Ch%"=="N" call:two
:4
cls
echo.
echo ****************************************************************************
echo.
echo                  请问需要复制驱动包和常用软件到本地硬盘并安装吗?
echo.
echo ****************************************************************************
echo.
Set Ch=
Set /P Ch=     请输入 Y (是的,我需要安装驱动和软件) 或 N (不,我只安装系统):
If "%Ch%"=="" Goto 3
If /I "%Ch%"=="Y" call:copy&&call:one
If /I "%Ch%"=="N" call:one
:one
If /i "%sys%" == "2003" (
cd /d %CDROM%:\Windows\2K3EE\
.\i386\winnt32 /dudisable /s:.\i386 /unattend:.\i386\WINNT.SIF /makelocalsource /tempdrive:%drive_letter%
)
If /i "%sys%" == "xp" (
cd /d %CDROM%:\Windows\XPPro\
.\i386\winnt32 /dudisable /s:.\i386 /unattend:.\i386\WINNT.SIF /makelocalsource /tempdrive:%drive_letter%
)
cls
echo.
echo ****************************************************************************
echo.
If /i "%sys%" == "2003" (echo        请重新启动以完成 %sys1% 的安装......) else echo             请重新启动以完成 %sys2% 的安装......
echo.
echo ****************************************************************************
echo.
pause & exit
:two
If /i "%sys%" == "2003" (
cd /d %CDROM%:\Windows\2K3EE\
.\i386\winnt32 /dudisable /s:.\i386 /unattend:.\i386\WINNT.2IF /makelocalsource /tempdrive:%drive_letter%
)
If /i "%sys%" == "xp" (
cd /d %CDROM%:\Windows\XPPro\
.\i386\winnt32 /dudisable /s:.\i386 /unattend:.\i386\WINNT.2IF /makelocalsource /tempdrive:%drive_letter%
)
cls
echo.
echo ****************************************************************************
echo.
If /i "%sys%" == "2003" (echo        请重新启动以完成 %sys1% 的安装......) else echo             请重新启动以完成 %sys2% 的安装......
echo.
echo ****************************************************************************
echo.
pause>NUL 2>NUL& exit
:error
cls
echo.
echo ****************************************************************************
echo.
echo                   没有找到安装文件,按任意键退出!!!
echo.
echo ****************************************************************************
pause>NUL 2>NUL
exit
:copy
echo.
echo.     正在为自动安装驱动和常用软件复制相应的文件到 D 盘,请稍候......
xcopy %CDROM%:\SoftWare d:\SoftWare\ /c /q /e /h /r /y>NUL 2>NUL
xcopy %CDROM%:\DRVS d:\DRVS\ /c /q /e /h /r /y>NUL 2>NUL
goto :eof
:end
cls
echo.
echo ****************************************************************************
echo.
echo                   请重启到Windows PE再安装系统,按任意键退出!!!
echo.
echo ****************************************************************************
pause>NUL 2>NUL
exit

+++++++++++++++++++++++++++++++++++++++++++++++






资料备份及系统安装.rar (3.61 KB, 下载次数: 129)

[ 本帖最后由 wjgyz740526 于 2010-5-25 08:13 编辑 ]
2#
发表于 2010-5-24 19:26:27 | 只看该作者
好东东,收藏学习
最好附有使用手册
PE下用的?
备份好的东东存放在哪不知道?
有没有自定义备份及自定义存放?
...

[ 本帖最后由 q999q111 于 2010-5-24 19:35 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2010-5-25 08:12:24 | 只看该作者
默认备份位置是D盘下资料备份文件夹,就这么个简单的东西还需要指定备份位置?
回复

使用道具 举报

4#
发表于 2010-5-26 16:35:03 | 只看该作者
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\桌面\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\桌面" "D:\资料备份\%pp%_用户\桌面\">NUL 2>NUL


   楼主,  dir 收索全属性文件,   不要一个个指定  你可以把

dir /s /b /A:D /A:R /A:H /A:S /A:A
改成

dir /a/b/s
回复

使用道具 举报

5#
 楼主| 发表于 2010-5-27 08:18:38 | 只看该作者
原帖由 x9tian 于 2010-5-26 16:35 发表
dir /s /b /A:D /A:R /A:H /A:S /A:A ".\%pp%\桌面\" 2^>NUL|findstr .>nul&& xcopy /s /c /h /q /r /y ".\%pp%\桌面" "D:\资料备份\%pp%_用户\桌面\">NUL 2>NUL


   楼主,  dir 收索全属性文件,   不要一个 ...


还真不知道呢,谢谢楼上的兄弟,学习了
回复

使用道具 举报

6#
发表于 2011-5-16 14:57:37 | 只看该作者
好东西确实不错,支技了
回复

使用道具 举报

7#
发表于 2011-5-18 22:35:32 | 只看该作者
是PE下用的程序么?
DOS下可以使用么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 06:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表