Board logo

标题: 老毛桃WinPE安装文件批处理的讲解,大家一起来研讨一下 [打印本页]

作者: tzz    时间: 2009-5-16 19:41     标题: 老毛桃WinPE安装文件批处理的讲解,大家一起来研讨一下

我把那个安装文件运行后在temp下找到了源文件,换成了.txt上传给大家研究
我感觉写的还不错
下载下来后把源文件配置文件改成"PESETUP.INI"再打开由源文件改成的.bat文件
链接: https://pan.baidu.com/s/1lBnbhG6L6YAhI02CYxzrHA 提取码: uy4n

源代码如下:
作者: tzz    时间: 2009-5-16 19:41

  1. @Echo Off
  2. COLOR 2F
  3. Set Prog=老毛桃制作的 WinPE 专用安装工具
  4. Set L1=      ╭══════════════════╮
  5. Set L2=      ║                  ║
  6. Set L3=   ╭══┤ %Prog%  ├══╮
  7. Set L4=   ║  ║                  ║  ║
  8. Set L5=   ║  ╰══════════════════╯  ║
  9. Set L6=   ║                        ║
  10. Set L7=   ╟════════════════════════╢
  11. Set L8=   ║ 版权所有:老毛桃  仅供网友们交流 翻版不究 ║
  12. Set L9=   ╰────────────────────────╯
  13. Title %Prog%
  14. Set SetupINIFile=PESetup.INI
  15. Set PEFile=MiniPE\WinPE.IS_
  16. Set PEIni=MiniPE\WinPE.INI
  17. Set LogFile=PEInstall.log
  18. If Not Exist .\PESETUP.INI Goto Err0
  19. For /F "tokens=2 delims=^=" %%I In ('FIND /I ^"外置程序包^" .\%SetupINIFile%') DO Set OPFile=MiniPE\%%I
  20. Set AddATTR=ATTRIB +S +H +R
  21. Set DelATTR=ATTRIB -S -H -R
  22. :Start
  23. CLS
  24. Title %Prog%——安装
  25. Echo.
  26. Echo %L1%
  27. Echo %L2%
  28. Echo %L3%
  29. Echo %L4%
  30. Echo %L5%
  31. Echo %L6%
  32. Echo    ║  请选择安装方式:               ║
  33. Echo %L6%
  34. Echo    ║  [1] 普通安装/启动 (硬盘安装)        ║
  35. Echo    ║  [2] Grub安装/启动 (硬盘安装,支持 MD5 密码) ║
  36. Echo    ║  [3] Aero安装/启动 (硬盘安装,支持密码)   ║
  37. Echo    ║  [4] Grub安装/启动 (U 盘、移动硬盘安装)   ║
  38. Echo    ║  [Q] 退出安装                ║
  39. Echo %L6%
  40. Echo %L7%
  41. Echo    ║ 注意: Aero 安装项只适合系统分区在(HD0,0)分区 ║
  42. Echo %L7%
  43. Echo %L8%
  44. Echo %L9%
  45. Echo.
  46. Set Choice=
  47. Set /P Choice=   请选择要进行的操作 (1/2/3/4/Q) ,然后按回车:
  48. If "%Choice%"=="" Goto Start
  49. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  50. If /I "%Choice%"=="1" Goto HD
  51. If /I "%Choice%"=="2" Goto HD
  52. If /I "%Choice%"=="3" Goto HD
  53. If /I "%Choice%"=="4" Goto UD
  54. If /I "%Choice%"=="Q" Exit
  55. Goto Start
  56. :HD
  57. Set RP=
  58. 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:
  59. If "%RP%"=="" Goto HDRPErr
  60. Set PEDIR=%RP%\MiniPE&&Set TargetP=硬盘&&Set TxtSp=
  61. If Exist %PEDIR% Goto Err1
  62. FIND /I "C:\MAOTAO" %RP%\BOOT.INI>NUL 2>NUL
  63. If "%Errorlevel%"=="0" Goto Err1
  64. FIND /I "C:\MiniPE" %RP%\BOOT.INI>NUL 2>NUL
  65. If "%Errorlevel%"=="0" Goto Err1
  66. If /I "%Choice%"=="1" Goto Install
  67. If /I "%Choice%"=="2" Goto GInstall
  68. If /I "%Choice%"=="3" Goto AInstall
  69. Goto HD
  70. :UD
  71. CLS
  72. Title %Prog%——U 盘安装
  73. For /F "skip=2 tokens=*" %%I In ('MYINS\CHECKUSB.EXE') DO SET Us=%%I
  74. If "%Us%"=="当前可移动磁盘分区:" Goto NoUD
  75. Echo %Us%&&Echo.
  76. If "%NoUD%"=="Yes" Echo 错误:您设定的分区 %RP% 不存在、写保护、未格式化或不是 U 盘分区,请按任意键重新设定。&&Echo.
  77. Set /P RP=请选择您的 U 盘盘符(不需要冒号,例如 F):
  78. Echo.&&Echo.
  79. If "%RP%"=="" Goto UD
  80. If Not "%RP%"=="" Set RP=%RP:~0,1%:
  81. For /F %%I In ('MYINS\CHECKUSB.EXE %RP%') DO SET Err2=%%I
  82. If Not "%Err2%"=="1" Set NoUD=Yes&&Goto UD
  83. Set TestFile=%RP%\MiniPETest_%RANDOM%.MT
  84. Cd.>%TestFile%
  85. If Not Exist %TestFile% Set NoUD=Yes&&Goto UD
  86. Del %TestFile% /Q>NUL 2>NUL
  87. Set U=U&&Set PEDIR=%RP%\MiniPE&&Set TargetP= U 盘&&Set TxtSp=
  88. If Exist %RP%\MAOTAO Goto Err1
  89. If Exist %PEDIR% Goto Err1
  90. CLS
  91. Echo 您选择的 U 盘分区为 %RP%,下面将对您的 U 盘进行格式化并写入引导
  92. Echo.
  93. Echo 请严格按照相关工具软件界面中的提示操作,以防出错。请按任意键开始。。。
  94. PAUSE>NUL
  95. Start /Wait MYINS\HPUSBFW.EXE
  96. Start /Wait MYINS\GRUBGUI.EXE
  97. Echo.
  98. Echo 您的 U 盘已经成功格式化并写入了 Grub 引导,请按任意键继续。。。
  99. PAUSE>NUL
  100. Goto GInstall
  101. :NoUD
  102. CLS
  103. Title %Prog%——U 盘安装
  104. Echo.
  105. Echo %L1%
  106. Echo %L2%
  107. Echo %L3%
  108. Echo %L4%
  109. Echo %L5%
  110. Echo %L6%
  111. Echo    ║ 您的计算机似乎没有安装 U 盘,您想怎么办?   ║
  112. Echo %L6%
  113. Echo    ║   返回首页,重新选择安装选项。      ║
  114. Echo    ║  [Q] 退出安装                ║
  115. Echo %L6%
  116. Echo %L7%
  117. Echo %L8%
  118. Echo %L9%
  119. Echo.
  120. Set Choice=
  121. Set /P Choice=   请选择要进行的操作 (B/Q) ,然后按回车:
  122. If "%Choice%"=="" Goto NoUD
  123. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  124. If /I "%Choice%"=="B" Goto Start
  125. If /I "%Choice%"=="Q" Exit
  126. Goto NoUD
  127. Exit
  128. :Err0
  129. Echo 错误:安装配置文件丢失!&&Echo.
  130. Echo 请确认安装配置文件 %SetupINIFile% 存在或到本程序所在目录执行安装。&&Echo.
  131. Echo 请按任意键退出安装程序。。。
  132. PAUSE>NUL
  133. Exit
  134. :Err1
  135. CLS
  136. Title %Prog%——卸载
  137. Echo.
  138. Echo %L1%
  139. Echo %L2%
  140. Echo %L3%
  141. Echo %L4%
  142. Echo %L5%
  143. Echo %L6%
  144. Echo    ║ 您的%TargetP%中好像已经安装了 WinPE,您想怎么办?%TxtSp% ║
  145. Echo %L6%
  146. Echo    ║  [1] 卸载原有的 WinPE,并且重新安装。    ║
  147. Echo    ║  [2] 卸载原有的 WinPE,并且不再安装。    ║
  148. Echo    ║   返回首页,重新选择安装选项。      ║
  149. Echo    ║  [Q] 退出安装                ║
  150. Echo %L6%
  151. Echo %L7%
  152. Echo %L8%
  153. Echo %L9%
  154. Echo.
  155. Set Choice=
  156. Set /P Choice=   请选择要进行的操作 (1/2/B/Q) ,然后按回车:
  157. If "%TargetP%"=="硬盘" Set U=
  158. If "%Choice%"=="" Goto Err1
  159. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  160. If /I "%Choice%"=="1" Set Choi=1&&Goto UnInstall
  161. If /I "%Choice%"=="2" Goto UnInstall
  162. If /I "%Choice%"=="B" Goto Start
  163. If /I "%Choice%"=="Q" Exit
  164. Goto Err1
  165. Exit
  166. :UnInstall
  167. If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE&&Del %RP%\LDRXPE /Q>NUL 2>NUL
  168. If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE&&Del %RP%\WINNT.XPE /Q>NUL 2>NUL
  169. If Exist %RP%\MTLDR.PE %DelATTR% %RP%\MTLDR.PE&&Del %RP%\MTLDR.PE /Q>NUL 2>NUL
  170. If Exist %RP%\MTLDR %DelATTR% %RP%\MTLDR&&Del %RP%\MTLDR /Q>NUL 2>NUL
  171. If Exist %RP%\%LogFile% For /F "eol=; tokens=2 delims=^=" %%i In ('find /I ^"WinPE外挂位置^" %RP%\%LogFile%') do SET OPD=%%i
  172. If Not "%U%"=="" Set OPD=%RP%
  173. If Exist %OPD%\外置程序 RD %OPD%\外置程序 /S /Q>NUL 2>NUL
  174. If Exist %RP%\%LogFile% %DelATTR% %RP%\%LogFile%&&Del %RP%\%LogFile% /Q>NUL 2>NUL
  175. If Exist %RP%\MAOTAO RD %RP%\MAOTAO /S /Q>NUL 2>NUL
  176. If Exist %RP%\MiniPE RD %RP%\MiniPE /S /Q>NUL 2>NUL
  177. %DelATTR% %RP%\BOOT.INI>NUL 2>NUL
  178. Set TMPINIFile=BOOT_%RANDOM%.INI
  179. If Exist %RP%\BOOT.BAK (
  180. %DelATTR% %RP%\BOOT.BAK
  181. TYPE %RP%\BOOT.BAK|FIND /I /V "C:\MAOTAO">%RP%\%TMPINIFile%
  182. TYPE %RP%\%TMPINIFile%|FIND /I /V "C:\MiniPE">%RP%\BOOT.INI
  183. ) Else (
  184. If Exist %RP%\BOOT.INI TYPE %RP%\BOOT.INI|FIND /I /V "C:\MAOTAO">%RP%\%TMPINIFile%
  185. If Exist %RP%\%TMPINIFile% TYPE %RP%\%TMPINIFile%|FIND /I /V "C:\MiniPE">%RP%\BOOT.INI
  186. )
  187. If Exist %RP%\BOOT.BAK %DelATTR% %RP%\BOOT.BAK&&Del %RP%\BOOT.BAK>NUL 2>NUL
  188. If Exist %RP%\%TMPINIFile% %DelATTR% %RP%\%TMPINIFile%&&Del %RP%\%TMPINIFile%>NUL 2>NUL
  189. If Exist %RP%\BOOT.INI %AddATTR% %RP%\BOOT.INI
  190. Set RP=
  191. Title %Prog%——卸载完成
  192. If "%Choi%"=="1" (Echo.&&Echo.&&Echo    卸载完成,请按任意键准备安装 。。。&&PAUSE>NUL 2>NUL&&Goto Start)
  193. Echo.&&Echo.&&Echo    卸载完成,请按任意键退出 。。。
  194. PAUSE>NUL 2>NUL
  195. Exit
  196. :Install
  197. Title %Prog%——普通安装
  198. If Not Exist %PEDIR% MD %PEDIR%>NUL 2>NUL
  199. If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE
  200. If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE
  201. Echo.&&Echo    正在复制文件,请稍候 。。。
  202. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% MAOTAO.BIN -r -y>NUL 2>NUL
  203. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% PE -r -y>NUL 2>NUL
  204. Call :CopyAndSetFiles
  205. Goto SUCCESS
  206. :GInstall
  207. If "%U%"=="" Title %Prog%——Grub安装
  208. CLS
  209. Set LDRP=MiniPE\
  210. Echo 请输入您要设定的密码
  211. Echo 注意:密码中不许有空格、"\"、引号等特殊字符
  212. Echo.
  213. Set /P Pass1=请输入:
  214. If "%Pass1%"=="" Goto GInstall
  215. Echo.&&Echo.
  216. Echo 请再一次输入您的密码
  217. Echo.
  218. Set /P Pass2=请再次输入:
  219. If "%Pass2%"=="" Goto GInstall
  220. If Not "%Pass2%"=="%Pass1%" Echo.&&Echo 您两次输入的密码不一致,请重新输入&&Echo 请按任意键重新开始设置密码&&PAUSE>NUL 2>NUL&&Goto GInstall
  221. If Not Exist %PEDIR% MD %PEDIR%>NUL 2>NUL
  222. >%PEDIR%\MD5P.TMP <nul Set/p=%Pass2%
  223. MYINS\MD5.EXE %PEDIR%\MD5P.TMP %PEDIR%\MD5R.TXT>NUL 2>NUL
  224. For /f %%i In ('type %PEDIR%\md5r.txt') do SET MD5Pass=password --md5 %%i
  225. MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% MTLDR -r -y>NUL 2>NUL
  226. >>%RP%\MTLDR Echo %MD5Pass%
  227. >>%RP%\MTLDR Echo fontfile /minipe/muifont.gz
  228. >>%RP%\MTLDR Echo splashimage /minipe/bj2008.xpm.gz
  229. >>%RP%\MTLDR Echo.
  230. >>%RP%\MTLDR Echo title WinPE 迷你维护系统 ^(By: MAOTAO^)
  231. >>%RP%\MTLDR Echo %MD5Pass%
  232. >>%RP%\MTLDR Echo chainloader /minipe/ldrxpe
  233. >>%RP%\MTLDR Echo.
  234. >>%RP%\MTLDR Echo title Grub 命令行
  235. >>%RP%\MTLDR Echo %MD5Pass%
  236. >>%RP%\MTLDR Echo commandline
  237. >>%RP%\MTLDR Echo.
  238. >>%RP%\MTLDR Echo title 从第一硬盘第一分区启动
  239. >>%RP%\MTLDR Echo root ^(hd0,0^)
  240. >>%RP%\MTLDR Echo chainloader +1
  241. >>%RP%\MTLDR Echo.
  242. >>%RP%\MTLDR Echo title 从第二硬盘第一分区启动
  243. >>%RP%\MTLDR Echo root ^(hd1,0^)
  244. >>%RP%\MTLDR Echo chainloader ^(hd1,0^)+1
  245. >>%RP%\MTLDR Echo.
  246. >>%RP%\MTLDR Echo title 重新启动计算机
  247. >>%RP%\MTLDR Echo reboot
  248. >>%RP%\MTLDR Echo.
  249. >>%RP%\MTLDR Echo title 关闭计算机
  250. >>%RP%\MTLDR <nul Set/p=halt
  251. Del %PEDIR%\MD5?.* /Q>NUL 2>NUL
  252. Echo.
  253. Echo 密码设置完成,请牢记您的密码,并按任意键继续 。。。
  254. PAUSE>NUL 2>NUL
  255. If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE
  256. If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE
  257. If Exist %RP%\MTLDR %DelATTR% %RP%\MTLDR
  258. Echo.
  259. Echo 正在复制文件,请稍候 。。。
  260. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% BJ2008.XPM.GZ -r -y>NUL 2>NUL
  261. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% muifont.gz -r -y>NUL 2>NUL
  262. If "%U%"=="" MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR%\ maotaog.bin -r -y>NUL 2>NUL
  263. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% PE -r -y>NUL 2>NUL
  264. If "%U%"=="" Ren %PEDIR%\maotaog.bin maotao.bin
  265. Call :CopyAndSetFiles
  266. Goto SUCCESS
复制代码

[ 本帖最后由 tzz 于 2009-5-16 21:34 编辑 ]
作者: tzz    时间: 2009-5-16 19:42

  1. :AInstall
  2. Title %Prog%——Aero安装
  3. CLS
  4. Echo 请输入您要设定的密码
  5. Echo 注意:密码中不许有空格、"\"、引号等特殊字符
  6. Echo.
  7. Set /P Pass1=请输入:
  8. If "%Pass1%"=="" Goto AInstall
  9. Echo.&&Echo.
  10. Echo 请再一次输入您的密码
  11. Echo.
  12. Set /P Pass2=请再次输入:
  13. If "%Pass2%"=="" Goto AInstall
  14. If Not "%Pass2%"=="%Pass1%" Echo.&&Echo 您两次输入的密码不一致,请重新输入&&Echo 请按任意键重新开始设置密码&&PAUSE>NUL 2>NUL&&Goto AInstall
  15. If Not Exist %PEDIR% MD %PEDIR%>NUL 2>NUL
  16. For /f %%i In (MyIns\Aero.sys) Do MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% %%i -r -y>NUL 2>NUL
  17. Ren %PEDIR%\maotao.bin avldr.xpe
  18. Ren %PEDIR%\maotaoa.bin maotao.bin
  19. >%PEDIR%\airL.gz <nul Set/p=%Pass2%
  20. Copy /B %PEDIR%\airT.gz+%PEDIR%\airL.gz+%PEDIR%\airW.gz %PEDIR%\airmenu.ini>NUL 2>NUL&&Del %PEDIR%\air?.gz /Q>NUL 2>NUL>NUL 2>NUL
  21. MyIns\MyIns.exe a -tGZip %PEDIR%\airmenu.gz %PEDIR%\airmenu.ini -w%PEDIR%>NUL 2>NUL&&Del %PEDIR%\airmenu.ini /Q>NUL 2>NUL&&Ren %PEDIR%\airmenu.gz airmenu.ini>NUL 2>NUL
  22. Echo.
  23. Echo 密码设置完成,请牢记您的密码,并按任意键继续 。。。
  24. PAUSE>NUL 2>NUL
  25. If Exist %RP%\LDRXPE %DelATTR% %RP%\LDRXPE
  26. If Exist %RP%\WINNT.XPE %DelATTR% %RP%\WINNT.XPE
  27. Echo.
  28. Echo 正在复制文件,请稍候 。。。
  29. MOVE %PEDIR%\MTLDR.PE %RP%\>NUL 2>NUL
  30. Call :CopyAndSetFiles
  31. Goto SUCCESS
  32. :HDRPErr
  33. CLS
  34. Set RP=
  35. 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:\BootMGR Set RP=%%I:&&Set PEDIR=%%I:\MiniPE
  36. If Not "%RP%"=="" (
  37.         TITLE %Prog%——检测到 Windows Vista 分区
  38.         Set OPT=Vista&&Set OPT0=存在 WinVista 分区&&Set OPT1= 将 WimPE 安装到 Windows Vista 分区。
  39. ) Else (
  40.         TITLE %Prog%——没有检测到系统分区
  41.         Set OPT=NewHD&&Set OPT0=没有安装过操作系统&&Set OPT1= 全新硬盘,将 WimPE 安装到活动分区。
  42. )
  43. Echo.
  44. Echo %L1%
  45. Echo %L2%
  46. Echo %L3%
  47. Echo %L4%
  48. Echo %L5%
  49. Echo %L6%
  50. Echo    ║ 好像您的机器中%OPT0%,您想怎么办?║
  51. Echo %L6%
  52. Echo    ║  %OPT1%  ║
  53. Echo    ║   返回首页,重新选择安装选项。      ║
  54. Echo    ║  [Q] 退出安装                ║
  55. Echo %L6%
  56. Echo    ║ 注意: 为确保安全,此安装选项可能会卸载不干净!║
  57. Echo %L7%
  58. Echo %L8%
  59. Echo %L9%
  60. Echo.
  61. Set Choice=
  62. Set /P Choice=   请选择要进行的操作 (I/B/Q) ,然后按回车:
  63. If "%Choice%"=="" Goto HDRPErr
  64. If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
  65. If /I "%Choice%"=="I" If "%OPT%"=="Vista" Goto Vista
  66. If /I "%Choice%"=="I" If "%OPT%"=="NewHD" Goto NewHD
  67. If /I "%Choice%"=="B" Goto Start
  68. If /I "%Choice%"=="Q" Exit
  69. Goto HDRPErr
  70. Exit
  71. :Vista
  72. Set PEDIR=%RP%\MiniPE
  73. If Exist %RP%\MAOTAO Goto Err1
  74. If Exist %PEDIR% Goto Err1
  75. Echo.&&Echo.
  76. Echo    正在复制文件,请稍候 。。。
  77. If Exist %RP%\NTLDR %DelATTR% %RP%\NTLDR&&Ren %RP%\NTLDR NTLDR.BAK
  78. Set NoLDR=Yes
  79. If "%NoLDR%"=="Yes" MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% LDRXPE -r -y>NUL 2>NUL
  80. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% PE -r -y>NUL 2>NUL
  81. If "%NoLDR%"=="Yes" Ren %RP%\LDRXPE NTLDR
  82. Call :CopyAndSetFiles
  83. Goto SUCCESS
  84. :NewHD
  85. CLS
  86. TITLE %Prog%——在全新硬盘中安装
  87. If "%NoNewErr%"=="Yes" Echo 错误:您设定的分区 %RP% 不存在、写保护、或未格式化,请按任意键重新设定。&&Echo.
  88. Echo 请设置您需要安装 WinPE 到哪个分区(注意一定要是活动分区)
  89. Echo.
  90. Set /P RP=请输入您需要安装 WinPE 的分区符(不需要冒号,例如 C),然后按回车:
  91. Echo.&&Echo.
  92. If "%RP%"=="" Goto NewHD
  93. If Not "%RP%"=="" Set RP=%RP:~0,1%:
  94. For /F %%I In ('MYINS\CHECKUSB.EXE %RP%') DO SET Err2=%%I
  95. If Not Exist %RP% Set NoNewErr=Yes&&Goto NewHD
  96. Set TestFile=%RP%\MiniPETest_%RANDOM%.MT
  97. Cd.>%TestFile%
  98. If Not Exist %TestFile% Set NoNewErr=Yes&&Goto NewHD
  99. Del %TestFile% /Q>NUL 2>NUL
  100. Set PEDIR=%RP%\MiniPE
  101. If Exist %RP%\MAOTAO Goto Err1
  102. If Exist %PEDIR% Goto Err1
  103. MyIns\NTBoot.exe %RP% >NUL
  104. Echo.
  105. Echo 正在复制文件,请稍候 。。。
  106. If Exist %RP%\NTLDR %DelATTR% %RP%\NTLDR&&Ren %RP%\NTLDR NTLDR.BAK
  107. Set NoLDR=Yes
  108. If "%NoLDR%"=="Yes" MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% LDRXPE -r -y>NUL 2>NUL
  109. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% PE -r -y>NUL 2>NUL
  110. If "%NoLDR%"=="Yes" Ren %RP%\LDRXPE NTLDR
  111. Call :CopyAndSetFiles
  112. Goto SUCCESS
  113. :CopyAndSetFiles
  114. If Not Exist %RP%\NTLDR MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% NTLDR -r -y>NUL 2>NUL
  115. If "%U%"=="" For /F %%i In ("%RP%\NTLDR") Do If %%~zi LSS 250000 Set SysVer=2K
  116. If "%NoLDR%"=="" MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP%\%LDRP% LDRXPE -r -y>NUL 2>NUL
  117. MyIns\MyIns.exe e MyIns\MyIns.dll -o%PEDIR% NTCOM -r -y>NUL 2>NUL
  118. ::If Not Exist %RP%\NTLDR MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% NTLDR -r -y>NUL 2>NUL
  119. Copy ..\%PEFile% %PEDIR% /Y>NUL 2>NUL
  120. Copy ..\%OPFile% %PEDIR% /Y>NUL 2>NUL
  121. Copy ..\%PEIni% %PEDIR% /Y>NUL 2>NUL
  122. If "%U%"=="" If Exist %RP%\BOOT.INI %DelATTR% %RP%\BOOT.INI
  123. If "%U%"=="" If Exist %RP%\BOOT.INI If Exist %RP%\BOOT.BAK %DelATTR% %RP%\BOOT.BAK
  124. If "%U%"=="" If Exist %RP%\BOOT.INI Copy %RP%\BOOT.INI %RP%\BOOT.BAK>NUL 2>NUL
  125. If "%U%"=="" If Exist %RP%\BOOT.INI TYPE %RP%\BOOT.BAK|FIND /I /V "C:\MiniPE">%RP%\BOOT.INI
  126. If "%U%"=="" If Exist %RP%\BOOT.INI Echo C:\MiniPE\MAOTAO.BIN="WinPE  By: 老毛桃">>%RP%\BOOT.INI
  127. If /I "%SysVer%"=="2K" (
  128.         %DelATTR% %RP%\NTLDR&&%DelATTR% %RP%\bootfont.bin
  129.         Ren %RP%\NTLDR NTLDR.2K&&Ren %RP%\bootfont.bin bootfont.bin.2K
  130.         MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% NTLDR -r -y>NUL 2>NUL
  131.         MyIns\MyIns.exe e MyIns\MyIns.dll -o%RP% bootfont.bin -r -y>NUL 2>NUL
  132. )
  133. If Exist %RP%\%PEIni% %DelATTR% %RP%\%PEIni%
  134. TYPE ..\%PEIni%|FIND /I /V "PESetup.EXE">%RP%\%PEIni%
  135. %AddATTR% %RP%\MiniPE /S /D
  136. %AddATTR% %RP%\MiniPE\*.* /S /D
  137. If Exist %RP%\BOOT.INI %AddATTR% %RP%\BOOT.INI
  138. If Exist %RP%\%LDRP%LDRXPE %AddATTR% %RP%\%LDRP%LDRXPE
  139. If Exist %RP%\MTLDR.PE %AddATTR% %RP%\MTLDR.PE
  140. If Exist %RP%\MTLDR %AddATTR% %RP%\MTLDR
  141. Goto :EOF
  142. :SUCCESS
  143. Title %Prog%——安装完成
  144. CLS
  145. For %%i In (C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do If /I "%RP%"=="%%i:" Set RP=%%i:
  146. Echo 已经成功将镜像 %PEFile% 安装到您的 %RP% 盘。
  147. If "%U%"=="" (
  148. Echo.
  149. If Exist %RP%\Boot.INI Echo 系统分区中的 BOOT.INI 备份为 BOOT.BAK。
  150. )
  151. Echo.&&Echo.
  152. Echo 如果您需要将 WinPE 卸载,请重新运行本安装程序。
  153. Echo.
  154. Echo 请按任意键退出 。。。
  155. PAUSE>NUL 2>NUL
  156. Exit
复制代码

[ 本帖最后由 tzz 于 2009-5-16 21:34 编辑 ]
作者: Batcher    时间: 2009-5-16 21:10

本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;


Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
作者: wanxibing    时间: 2011-8-19 03:27

以上代码写的是没得话说,构思严谨结构紧凑,
  1. If Not Exist .\PESETUP.INI Goto Err0
  2. :Err0
  3. Echo 错误:安装配置文件丢失!&&Echo.
  4. Echo 请确认安装配置文件 %SetupINIFile% 存在或到本程序所在目录执行安装。&&Echo.
  5. Echo 请按任意键退出安装程序。。。
复制代码

****************************************
不知他的批处理是用什么软件打包的,解压到临时文件夹把变量设在J:\SETUP\PESETUP.EXE 这个目录的,试想下批处理已解压到临时文件夹再运行,运行到 If Not Exist .\PESETUP.INI Goto Err0
表示如果当前目录不存在PESETUP.INI这个文件就跳到Err0处,
作者: wanxibing    时间: 2011-8-19 21:02

  1. @echo off
  2. if exist C:\mtldr (
  3.        goto jc01
  4.        ) else (
  5.      set n1=C:\mtldr
  6.        goto err
  7.   )
  8. :err
  9. color 4f
  10. echo 错误 好像你的系统没有正确安装PE系统、
  11. echo.
  12. echo 缺失文件 %n1% %n2%请安装后再运行本程序 按任一键退出
  13. pause >nul
  14. exit
  15. :jc01
  16. if exist C:\MiniPE\OP.WIM (
  17.        goto jc02
  18.        ) else (
  19.       set n2=C:\MiniPE\OP.WIM
  20.        goto err
  21.     )
  22. :jc02
  23. color 6f
  24. goto bigen
  25. :bigen
  26. echo ok 可以安装 没有发现少了相应的文件
  27. pause
复制代码

作者: wolfwolf    时间: 2011-10-15 22:59

很厉害的人啊,楼主也英明
作者: LJY4.0    时间: 2022-6-5 21:30

回复 5# wanxibing
要把PESETUP.txt改为PESETUP.INI




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2