在系统安装盘里提取WinPE的源码
现在的WINPE都追求全,功能多,但是都忽视了体积。很大用户仅仅是使用PE搞下维护,并且很少用到PE。体积太大的话看着害怕,好在我们有oscdimg.exe这个工具。
比如,我制作了一个220M的PE,想从它的里边提取骨头版,45M维护型,90M网络版,所以我就写了个程序,程序看着多,但是主程序就仅仅一句(红色部分),希望各位制作PE提供坛友使用的老大们能将它移植过去,帮助用户快速DIY,附上代码和所用文件。
@Echo Off
PUSHD %~dp0
COLOR 0B
Set Prog=小马WinPE专用单ISO提取程序
Set L1= ╭══════════════════╮
Set L2= ║ ║
Set L3= ╭══┤ 小马WinPE专用单ISO提取程序 ├══╮
Set L4= ║ ║ ║ ║
Set L5= ║ ╰══════════════════╯ ║
Set L6= ║ ║
Set L7= ╟════════════════════════╢
Set L8= ║ 版权所有:深度mapeimapei 盗版不究 ║
Set L9= ╰────────────────────────╯
Title %Prog%
::CheckOS
if /i not "%os%."=="Windows_NT." goto SystemErro
::判断系统版本并设置TheOS
ver|find /i " 6.1">nul &&set Winver=WIN7&& set TheOS=WIN7
ver|find /i " 6.0">nul &&set Winver=vista&& set TheOS=Vista
ver|find /i " 5.0">nul &&set Winver=winnt&& set TheOS=2000
ver|find /i " 5.1">nul &&set Winver=winnt&& set TheOS=XP
ver|find /i " 5.2">nul &&set Winver=winnt&& set TheOS=2003
goto Start
:SystemErro
cls
Echo.
Echo.
Echo 注意:未经测试,本软件可能不适用于非 Windows PE/2000/XP/2003/Vista/WIN7 操作系统。
Echo 按回车键退出安装程序
Pause >nul
Exit
:Start
CLS
Title %Prog%——提取
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo ║ 请选择提取模式: ║
Echo %L6%
Echo ║ [1] 提取骨头版WINPE (仅含有内核) ║
Echo ║ ║
Echo ║ [2] 提取45M迷你U盘版 (外置仅含有basic包) ║
Echo ║ ║
Echo ║ [3] 提取90M带网络维护版 (含有网路和安装程序) ║
Echo ║ ║
Echo ║ [Q] 退出提取模式 ║
Echo %L6%
Echo %L7%
Echo %L7%
Echo %L8%
Echo %L9%
Echo.
Echo 您现在使用的是 Windows %TheOS% 操作系统 !
if "%TheOS%"=="XP" Echo ( 或 Windows XP 核心的 WinPE )
if "%TheOS%"=="2003" Echo ( 或 Windows 2003 核心的 WinPE )
if "%TheOS%"=="Vista" Echo ( 请确保您拥有管理员权限以及关闭了UAC,否则安装可能失败 )
if "%TheOS%"=="WIN7" Echo ( 请确保您拥有管理员权限以及关闭了UAC,否则安装可能失败 )
Echo.
::Set Choice=
Set /P Choice= 请选择要进行的操作 (1/2/3/Q) ,然后按回车:
If "%Choice%"=="" Goto Start
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="1" set mkiso=gutou.iso&&Goto gutou
If /I "%Choice%"=="2" set mkiso=45mu.iso&&Goto 45mu
If /I "%Choice%"=="3" set mkiso=90Mnet.iso&&Goto 90Mnet
If /I "%Choice%"=="Q" Exit
Goto Start
:gutou
Title 单独生成%mkiso%文件...
CLS
Echo.
Echo.
Set /P Save=请设定%mkiso%文件 存放的分区符[不需要冒号,例如 D(推荐)]:
Echo.&&Echo.
If Not "%Save%"=="" Set Save=%Save:~0,1%:
md %Save%\gutou
set isotem="%Save%\gutou"
Echo.
Echo.
Echo 正在整理必要文件,请稍后...
Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
Cls
Echo.
Echo.
[color=Red]Echo 正在生成%mkiso%文件到%Save% 目录...
If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
EZBOOT\Oscdimg.Exe -L"gutou" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\PE.BIF" -O "%isotem%" "%Save%\gutou.iso">Nul[/color]
)
Goto SUCCESS
:45mu
Title 单独生成%mkiso%文件...
CLS
Echo.
Echo.
Set /P Save=请设定%mkiso%文件存放的分区符[不需要冒号,例如 D(推荐)]:
Echo.&&Echo.
If Not "%Save%"=="" Set Save=%Save:~0,1%:
md %Save%\45MU
set isotem="%Save%\45MU"
md %isotem%\MINIPE
Echo.
Echo.
Echo 正在整理必要文件,请稍后...
Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
Copy MINIPE\BASIC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\BLISS.JPG %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\WINPE.INI %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\LOADOP.INI %isotem%\MINIPE\ /y>NUL 2>NUL
XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
Echo.
Echo.
Echo 正在生成%mkiso%文件到%Save% 目录...
If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
EZBOOT\Oscdimg.Exe -L"45MU" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\PE.BIF" -O "%isotem%" "%Save%\45MU.iso">Nul
)
Goto SUCCESS
:90Mnet
Title 单独生成%mkiso%文件...
CLS
Echo.
Echo.
Set /P Save=请设定%mkiso%文件 存放的分区符[不需要冒号,例如 D(推荐)]:
Echo.&&Echo.
If Not "%Save%"=="" Set Save=%Save:~0,1%:
Md %Save%\90Mnet
set isotem="%Save%\90Mnet"
md %isotem%\MINIPE
Echo.
Echo.
Echo 正在整理必要文件,请稍后...
Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
Copy MINIPE\BASIC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\GHOST.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\MMC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\DISKGENIUS.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\OPERA.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\SYSTEM.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\WINPE.INI %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\LOADOP.INI %isotem%\MINIPE\ /y>NUL 2>NUL
Copy MINIPE\BLISS.JPG %isotem%\MINIPE\ /y>NUL 2>NUL
XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
XCOPY SETUP /E %isotem%\SETUP\ /Y /H /R>NUL 2>NUL
XCOPY EZBOOT /E %isotem%\EZBOOT\ /Y /H /R>NUL 2>NUL
Echo.
Echo.
Echo 正在生成%mkiso%文件到%Save% 目录...
If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
EZBOOT\Oscdimg.Exe -L"90Mnet" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\easy.bif" -O "%isotem%" "%Save%\90Mnet.iso">Nul
)
Goto SUCCESS
:SUCCESS
Title %Prog%——安装完成
CLS
Echo.
rd /s /q %isotem%
Cls
Echo.
Echo. %mkiso% 文件已成功生成至 %Save% 目录内...
Echo.
set /p Cho=返回主菜单继续制作请输入Y,否则按Enter(回车)退出。
if /i "%Cho%"=="Y" CALL :Start
Goto :EOF
exit
(责任编辑:一键u盘装系统)