• WINPE
  • 在系统安装盘里提取WinPE的源码

    作者:upzxt 文章来源:u盘装系统 发布时间:2012-08-03 18:51点击:

    在系统安装盘里提取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盘装系统)