|  | 
 
| 写了个用户资料和聊天记录的备份程序,并且结合了在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 编辑 ]
 | 
 |