雨林木风 > 新闻资讯 >

在系统安装盘里提取PE的源码

在系统安装盘里提取PE的源码

作者:佚名 来源:雨林木风 2014-04-04 06:58:54

       现在的WINPE都追求全,功能多,但是都忽视了体积。很大用户仅仅是使用PE搞下维护,并且很少用到PE。体积太大的话看着害怕,好在我们有oscdimg.exe这个工具。

  比如,我制作了一个220M的PE,想从它的里边提取骨头版,45M维护型,90M网络版,所以我就写了个程序,程序看着多,但是主程序就仅仅一句(红色部分),希望各位制作PE提供坛友使用的老大们能将它移植过去,帮助用户快速DIY,附上代码和所用文件。

  1. @Echo Off
  2. PUSHD %~dp0
  3. COLOR 0B
  4. Set Prog=小马WinPE专用单ISO提取程序
  5. Set L1=      ╭══════════════════╮
  6. Set L2=      ║                  ║
  7. Set L3=   ╭══┤    小马WinPE专用单ISO提取程序     ├══╮
  8. Set L4=   ║  ║                  ║   ║
  9. Set L5=   ║  ╰══════════════════╯  ║
  10. Set L6=   ║                        ║
  11. Set L7=   ╟════════════════════════╢
  12. Set L8=   ║ 版权所有:深度mapeimapei          盗版不究  ║
  13. Set L9=   ╰────────────────────────╯
  14. Title %Prog%
  15. ::CheckOS
  16. if /i not "%os%."=="Windows_NT." goto SystemErro
  17. ::判断系统版本并设置TheOS
  18. ver|find /i " 6.1">nul &&set Winver=WIN7&&  set TheOS=WIN7
  19. ver|find /i " 6.0">nul &&set Winver=vista&&  set TheOS=Vista
  20. ver|find /i " 5.0">nul &&set Winver=winnt&&  set TheOS=2000
  21. ver|find /i " 5.1">nul &&set Winver=winnt&&  set TheOS=XP
  22. ver|find /i " 5.2">nul &&set Winver=winnt&&  set TheOS=2003
  23. goto Start
  24. :SystemErro
  25. cls
  26. Echo.
  27. Echo.
  28. Echo  注意:未经测试,本软件可能不适用于非 Windows PE/2000/XP/2003/Vista/WIN7 操作系统。
  29. Echo  按回车键退出安装程序
  30. Pause >nul
  31. Exit
  32. :Start
  33. CLS
  34. Title %Prog%——提取
  35. Echo.
  36. Echo %L1%
  37. Echo %L2%
  38. Echo %L3%
  39. Echo %L4%
  40. Echo %L5%
  41. Echo %L6%
  42. Echo    ║  请选择提取模式:               ║
  43. Echo %L6%
  44. Echo    ║ [1] 提取骨头版WINPE      (仅含有内核)     ║
  45. Echo    ║                                              ║
  46. Echo    ║ [2] 提取45M迷你U盘版     (外置仅含有basic包)  ║
  47. Echo    ║                                              ║
  48. Echo    ║ [3] 提取90M带网络维护版  (含有网路和安装程序) ║
  49. Echo    ║                                              ║
  50. Echo    ║ [Q] 退出提取模式                ║
  51. Echo %L6%
  52. Echo %L7%
  53. Echo %L7%
  54. Echo %L8%
  55. Echo %L9%
  56. Echo.
  57. Echo       您现在使用的是 Windows %TheOS% 操作系统 !
  58. if "%TheOS%"=="XP" Echo       ( 或 Windows XP 核心的 WinPE )
  59. if "%TheOS%"=="2003" Echo       ( 或 Windows 2003 核心的 WinPE )
  60. if "%TheOS%"=="Vista" Echo       ( 请确保您拥有管理员权限以及关闭了UAC,否则安装可能失败 )
  61. if "%TheOS%"=="WIN7" Echo       ( 请确保您拥有管理员权限以及关闭了UAC,否则安装可能失败 )
  62. Echo.
  63. ::Set Choice=
  64. Set /P Choice=   请选择要进行的操作 (1/2/3/Q) ,然后按回车:
  65. If "%Choice%"=="" Goto Start
  66. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  67. If /I "%Choice%"=="1" set mkiso=gutou.iso&&Goto gutou
  68. If /I "%Choice%"=="2" set mkiso=45mu.iso&&Goto 45mu
  69. If /I "%Choice%"=="3" set mkiso=90Mnet.iso&&Goto 90Mnet
  70. If /I "%Choice%"=="Q" Exit
  71. Goto Start
  72.  
  73. :gutou
  74. Title 单独生成%mkiso%文件...
  75. CLS
  76. Echo.
  77. Echo.
  78. Set /P Save=请设定%mkiso%文件 存放的分区符[不需要冒号,例如 D(推荐)]:
  79. Echo.&&Echo.
  80. If Not "%Save%"=="" Set Save=%Save:~0,1%:
  81. md %Save%\gutou
  82. set isotem="%Save%\gutou"
  83. Echo.
  84. Echo.
  85. Echo 正在整理必要文件,请稍后...
  86. Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
  87. Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
  88. Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
  89. XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
  90. Cls
  91. Echo.
  92. Echo.
  93. [color=Red]Echo 正在生成%mkiso%文件到%Save% 目录...
  94. If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
  95. EZBOOT\Oscdimg.Exe -L"gutou" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\PE.BIF" -O "%isotem%" "%Save%\gutou.iso">Nul[/color]
  96. )
  97. Goto SUCCESS
  98. :45mu
  99. Title 单独生成%mkiso%文件...
  100. CLS
  101. Echo.
  102. Echo.
  103. Set /P Save=请设定%mkiso%文件存放的分区符[不需要冒号,例如 D(推荐)]:
  104. Echo.&&Echo.
  105. If Not "%Save%"=="" Set Save=%Save:~0,1%:
  106. md %Save%\45MU
  107. set isotem="%Save%\45MU"
  108. md %isotem%\MINIPE
  109. Echo.
  110. Echo.
  111. Echo 正在整理必要文件,请稍后...
  112. Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
  113. Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
  114. Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
  115. Copy MINIPE\BASIC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  116. Copy MINIPE\BLISS.JPG %isotem%\MINIPE\ /y>NUL 2>NUL
  117. Copy MINIPE\WINPE.INI %isotem%\MINIPE\ /y>NUL 2>NUL
  118. Copy MINIPE\LOADOP.INI %isotem%\MINIPE\ /y>NUL 2>NUL
  119. XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
  120. Echo.
  121. Echo.
  122. Echo 正在生成%mkiso%文件到%Save% 目录...
  123. If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
  124. EZBOOT\Oscdimg.Exe -L"45MU" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\PE.BIF" -O "%isotem%" "%Save%\45MU.iso">Nul
  125. )
  126. Goto SUCCESS
  127. :90Mnet
  128. Title 单独生成%mkiso%文件...
  129. CLS
  130. Echo.
  131. Echo.
  132. Set /P Save=请设定%mkiso%文件 存放的分区符[不需要冒号,例如 D(推荐)]:
  133. Echo.&&Echo.
  134. If Not "%Save%"=="" Set Save=%Save:~0,1%:
  135. Md %Save%\90Mnet
  136. set isotem="%Save%\90Mnet"
  137. md %isotem%\MINIPE
  138. Echo.
  139. Echo.
  140. Echo 正在整理必要文件,请稍后...
  141. Copy WINPE.IM_ %isotem%\ /y>NUL 2>NUL
  142. Copy WINNT.XPE %isotem%\ /y>NUL 2>NUL
  143. Copy BOOTFONT.BIN %isotem%\ /y>NUL 2>NUL
  144. Copy MINIPE\BASIC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  145. Copy MINIPE\GHOST.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  146. Copy MINIPE\MMC.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  147. Copy MINIPE\DISKGENIUS.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  148. Copy MINIPE\OPERA.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  149. Copy MINIPE\SYSTEM.WIM %isotem%\MINIPE\ /y>NUL 2>NUL
  150. Copy MINIPE\WINPE.INI %isotem%\MINIPE\ /y>NUL 2>NUL
  151. Copy MINIPE\LOADOP.INI %isotem%\MINIPE\ /y>NUL 2>NUL
  152. Copy MINIPE\BLISS.JPG %isotem%\MINIPE\ /y>NUL 2>NUL
  153. XCOPY WXPE /E %isotem%\WXPE\ /Y /H /R>NUL 2>NUL
  154. XCOPY SETUP /E %isotem%\SETUP\ /Y /H /R>NUL 2>NUL
  155. XCOPY EZBOOT /E %isotem%\EZBOOT\ /Y /H /R>NUL 2>NUL
  156. Echo.
  157. Echo.
  158. Echo 正在生成%mkiso%文件到%Save% 目录...
  159. If Exist EZBOOT\Oscdimg.Exe If Exist EZBOOT\PE.BIF (
  160. EZBOOT\Oscdimg.Exe -L"90Mnet" -T06/01/2009,00:00:00 -H -N -B"EZBOOT\easy.bif" -O "%isotem%" "%Save%\90Mnet.iso">Nul
  161. )
  162. Goto SUCCESS
  163.  
  164. :SUCCESS
  165. Title %Prog%——安装完成
  166. CLS
  167. Echo.
  168. rd /s /q %isotem%
  169. Cls
  170. Echo.
  171. Echo. %mkiso% 文件已成功生成至 %Save% 目录内...
  172. Echo.
  173. set /p Cho=返回主菜单继续制作请输入Y,否则按Enter(回车)退出。
  174. if /i "%Cho%"=="Y" CALL :Start
  175. Goto :EOF
  176. exit