|
4#
楼主 |
发表于 2007-8-1 23:32:02
|
只看该作者
安装.bat卸载文件怎么会不彻底啊?
我使用网上的安装xpe的批处理“安装.bat”,出现3个问题,清高手帮忙解决:
1、安装后,boot.ini虽然备份了,但新boot.ini里没有启动xpe项(在批处理里设置了C:LDRXPE="超级急救中心120")。
2、安装后,再卸载不彻底,外置程序还在啊。
3、安装后的外置程序没有隐藏属性
附批处理:
@Echo Off
COLOR 2F
Set Prog=Win XPE专用安装工具
Set L1= ╭══════════════════╮
Set L2= ║ ║
Set L3= ╭══┤ %Prog%├══╮
Set L4= ║ ║ ║ ║
Set L5= ║ ╰══════════════════╯ ║
Set L6= ║ ║
Set L7= ╟════════════════════════╢
Set L8= ║ 版权所有:大家 仅供网友们交流 翻版不究 ║
Set L9= ╰────────────────────────╯
Title %Prog%
Set CFGFile=Setup.ini
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"PE镜像^" %CFGFile%') do SET PEFile=%%i
For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"外挂配置文件^" %CFGFile%') do SET PEIni=%%i
FIND /I ".IM" %CFGFile%>NUL 2>NUL
If "%Errorlevel%"=="0" Set PEFileType=IMG
Set AddATTR=ATTRIB +S +H +R
Set DelATTR=ATTRIB -S -H -R
For %%I In (Z Y X W V U T S R Q P O N M L K J I H G F E D C) Do If Exist %%I:\BOOT.INI Set RP=%%I:
If "%RP%"=="" Goto NoSys
Set LogFile=%RP%\PEInstall.log
Set PEDIR=%RP%\c:
If Exist %PEDIR% Goto Err1
FIND /I "C:" %RP%\BOOT.INI>NUL 2>NUL
If "%Errorlevel%"=="0" Goto Err1
Goto Start
:Err1
CLS
Title %Prog%——卸载
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo ║ 您的机器中好像已经安装了 WinPE 了,您想怎么办?║
Echo %L6%
Echo ║ [1] 卸载原有的 WinPE,并且重新安装。 ║
Echo ║ [2] 卸载原有的 WinPE,并且不再安装。 ║
Echo ║ [Q] 退出安装 ║
Echo %L6%
Echo %L7%
Echo %L8%
Echo %L9%
Echo.
Set Choice=
Set /P Choice= 请选择要进行的操作 (1/2/Q) ,然后按回车:
If "%Choice%"=="" Goto Err1
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="1" Set Choi=1&&Goto UnInstall
If /I "%Choice%"=="2" Goto UnInstall
If /I "%Choice%"=="Q" Exit
Goto Err1
Exit
:UnInstall
If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE&&Del %RP%\LDRXPE /Q>NUL 2>NUL
If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE&&Del %RP%\WINNT.XPE /Q>NUL 2>NUL
If Exist %RP%\MTLDR.PE %DelATTR% %RP%\MTLDR.PE&&Del %RP%\MTLDR.PE /Q>NUL 2>NUL
If Exist %RP%\MTLDR %DelATTR% %RP%\MTLDR&&Del %RP%\MTLDR /Q>NUL 2>NUL
If Exist %LogFile% For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"WinPE外挂位置^" %LogFile%') do SET OPU=%%i
If Exist %OPU%\外置程序 RD %OPU%\外置程序 /S /Q>NUL 2>NUL
If Exist %LogFile% %DelATTR% %LogFile%&&Del %LogFile% /Q>NUL 2>NUL
If Exist %RP%\c: RD %RP%\c: /S /Q>NUL 2>NUL
%DelATTR% %RP%\BOOT.INI
If Exist %RP%\BOOT.BAK (
%DelATTR% %RP%\BOOT.BAK
TYPE %RP%\BOOT.BAK|FIND /I /V "C:">%RP%\BOOT.INI
) Else (
Copy %RP%\BOOT.INI %RP%\BOOT.BAK /Y>NUL 2>NUL
TYPE %RP%\BOOT.BAK|FIND /I /V "C:">%RP%\BOOT.INI
)
If Exist %RP%\BOOT.BAK %DelATTR% %RP%\BOOT.BAK&&Del %RP%\BOOT.BAK>NUL 2>NUL
%AddATTR% %RP%\BOOT.INI
Title %Prog%——卸载完成
If "%Choi%"=="1" (Echo.&&Echo.&&Echo 卸载完成,请按任意键准备安装 。。。&&PAUSE>NUL 2>NUL&&Goto Start)
Echo.&&Echo.&&Echo 卸载完成,请按任意键退出 。。。
PAUSE>NUL 2>NUL
Exit
:Start
CLS
Title %Prog%——安装
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo ║ 请选择安装方式: ║
Echo %L6%
Echo ║ [1] 普通安装/启动 ║
Echo ║ [Q] 退出安装 ║
Echo %L6%
Echo %L7%
Echo %L7%
Echo %L8%
Echo %L9%
Echo.
Set Choice=
Set /P Choice= 请选择要进行的操作 (1/Q) ,然后按回车:
If "%Choice%"=="" Goto Start
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="1" Goto Install
If /I "%Choice%"=="Q" Exit
Goto Start
:Install
Title %Prog%——普通安装
If "%OP%"=="" Call :SetOP
If Not Exist %PEDIR% MD %PEDIR%>NUL 2>NUL
If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE
If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE
Echo 正在复制文件,请稍候 。。。
MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% -r -y>NUL 2>NUL
MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP%\ WINNT.XPE -r -y>NUL 2>NUL
Call :CopyAndSetFiles
Goto SUCCESS
:NoSys
CLS
Echo 好像您的机器中没有安装操作系统哦,请确认后再执行本安装程序。
Echo.
Echo 请按任意键退出 。。。
PAUSE>NUL 2>NUL
Exit
:CopyAndSetFiles
Copy ..\WXPE\SETUPLDR.BIN %RP%\LDRXPE /Y>NUL 2>NUL
Copy ..\%PEFile% %PEDIR% /Y>NUL 2>NUL
%DelATTR% %RP%\BOOT.INI
If Exist %RP%\BOOT.BAK %DelATTR% %RP%\BOOT.BAK
Copy %RP%\BOOT.INI %RP%\BOOT.BAK>NUL 2>NUL
TYPE %RP%\BOOT.BAK|FIND /I /V "C:">%RP%\BOOT.INI
Echo C:LDRXPE="超级急救中心120">>%RP%\BOOT.INI
XCOPY ..\外置程序 /E %OP%\外置程序\ /Y /R>NUL 2>NUL
XCOPY ..\boot /E %OP%\boot\ /Y /R>NUL 2>NUL
If Exist %OP%\%PEIni% %DelATTR% %OP%\%PEIni%
TYPE ..\%PEIni%|FIND /I /V "安装.bat">%OP%\%PEIni%
If "%PEFileType%"=="Iso" (
>>%RP%\WINNT.XPE <nul Set/p=/rdpath=c:\%PEFile%"
) Else (
>>%RP%\WINNT.XPE <nul Set/p=/rdexportascd /rdpath=c:\%PEFile%"
)
%AddATTR% %RP%\LDRXPE
%AddATTR% %RP%\WINNT.XPE
%AddATTR% %RP%\BOOT.INI
%AddATTR% %RP%\c" /S /D
%AddATTR% %RP%\c:\*.* /S /D
%AddATTR% %OP%\外置程序 /S /D
%AddATTR% %OP%\外置程序\*.* /S /D
%AddATTR% %RP%\boot /S /D
%AddATTR% %RP%\boot\*.* /S /D
If Exist %RP%\MTLDR.PE %AddATTR% %RP%\MTLDR.PE
If Exist %RP%\MTLDR %AddATTR% %RP%\MTLDR
>%LogFile% Cd.
>>%LogFile% Echo ;此文件为 WinPE 的安装日志文件,请不要随意删除
>>%LogFile% Echo ;否则可能会造成 WinPE 的卸载不够彻底!!!
>>%LogFile% Echo.
>>%LogFile% Echo WinPE镜像文件=%PEFile%
>>%LogFile% Echo WinPE外挂位置=%OP%
>>%LogFile% Echo WinPE安装日期=%Date% %Time%
%AddATTR% %LogFile%
Goto :EOF
:SetOP
CLS
If "%NoOP%"=="Yes" Echo 错误:您设定的分区不存在或写保护,请按任意键重新设定。&&Echo.
Set /P OP=请设定 外置程序 存放的分区符(不需要冒号,例如 D):
Echo.&&Echo.
If "%OP%"=="" Goto SetOP
If Not "%OP%"=="" Set OP=%OP:~0,1%:
Set TestFile=%OP%\grubTest.MT
Cd.>%TestFile%
If Not Exist %TestFile% Set NoOP=Yes&&Goto SetOP
Del %TestFile% /Q>NUL 2>NUL
Goto :EOF
:SUCCESS
Title %Prog%——安装完成
CLS
Echo 已经成功将镜像 %PEFile% 安装到您的 %RP% 盘。
Echo 外置程序 文件夹按照您的设置,复制到了 %OP% 盘。
Echo.
Echo 系统分区中的 BOOT.INI 备份为 BOOT.BAK。
Echo.&&Echo.
Echo 如果您需要将 WinPE 卸载,请重新运行本安装程序。
Echo.
Echo 请按任意键退出 。。。
PAUSE>NUL 2>NUL
Exit
我是想将图中的文件复制到硬盘啊 |
|