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