|  | 
 
| 现在的WINPE都追求全,功能多,但是都忽视了体积。很大用户仅仅是使用PE搞下维护,并且很少用到PE。体积太大的话看着害怕。 
 好在我们有oscdimg.exe这个工具。
 
 下边我提供下思路:
 
 比如,我制作了一个220M的PE,想从它的里边提取骨头版,45M维护型,90M网络版,所以我就写了个程序,程序看着多,但是主程序就仅仅一句(红色部分),希望各位制作PE提供坛友使用的老大们能将它移植过去,帮助用户快速DIY。。附上代码和所用文件。
  MAKEISO.rar
(60.14 KB, 下载次数: 5195) 
 
 @Echo OffPUSHD %~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.
 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
 )
 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
 
 附上oscdimg的命令参数:
 
 oscdimg [-blocation] [-d] [-h] [-j1] [-j2] [-llabelname] [-n] [-nt] [-o[i][s]] [-tmm/dd/yyyy,hh:mm:ss [-g]] [-x] sourceroot [image_file]
 
 选项 描述 -b location
 指定 El Torito 引导扇区文件的位置。不要使用任何空格。
 例如,
 -bc:\directory\Etfsboot.com
 -d
 不强制将小写字母文件名转换为大写字母。
 -g
 对所有文件使用通用协调时间 (UCT) 而不是当地时间。
 -h
 包括隐藏文件和目录。
 -j1
 对 Joliet Unicode 文件名进行编码,并在 ISO-9660 名称空间中生成符合 DOS 8.3 标准的文件名。这些文件名可以被 Joliet 系统或传统的 ISO-9660 系统读取,但是 Oscdimg 可能会更改 ISO-9660 命名空间中的一些文件名以符合 DOS 8.3 和/或 ISO-9660 命名限制。
 当使用 -j1 或 -j2 选项时,-d、-n 和 -nt 选项不会应用且无法使用。
 -j2
 对不含标准 ISO-9660 名称的 Joliet Unicode 文件名进行编码。(要求 Joliet 操作系统从 CD-ROM 读取文件。)
 当使用 -j1 或 -j2 选项时,-d、-n 和 -nt 选项不会应用且无法使用。
 -l labelname
 指定卷标。不要在 l 和 labelname 之间使用空格。
 例如,
 -lMYLABEL
 -n
 允许使用长文件名。
 -nt
 允许与 Windows NT 3.51 兼容的长文件名。
 -o
 通过对重复的文件仅进行一次编码来优化存储。
 -oi
 通过对重复的文件仅进行一次编码来优化存储。比较文件时,忽略菱形压缩时间戳。
 -os
 通过对重复的文件仅进行一次编码来优化存储。在创建映像时显示重复的文件。
 -ois
 通过对重复的文件仅进行一次编码来优化存储。比较文件时,忽略菱形压缩时间戳。在创建映像时显示重复的文件。
 -t mm/dd/yyyy,hh:mm:ss
 为所有文件和目录指定时间戳。不要使用任何空格。使用美国日期格式和 24 小时制。可以在项目间使用任何分隔符。
 例如,
 -t12/31/2000,15:01:00
 -x
 计算并编码映像中的 AutoCRC 值。
 sourceroot
 必需。指定您要创建到 .iso 映像中的 Windows PE 文件的位置。
 image_file
 指定要从 Windows PE 文件创建的 .iso 映像文件的名称。
 丝路商旅 http://www.you369.com
 
 [ 本帖最后由 mapeimapei 于 2009-10-17 13:49 编辑 ]
 | 
 |