无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: Hack38
打印 上一主题 下一主题

[求助] 使用原版系统,想做成无人值守安装,在安装后从指定目录自动安装驱动程序

[复制链接]
31#
发表于 2024-10-19 18:24:18 | 只看该作者
回复

使用道具 举报

32#
发表于 2024-12-5 15:16:26 | 只看该作者
谢谢分享
回复

使用道具 举报

33#
发表于 2024-12-6 00:51:15 | 只看该作者
前来学习
回复

使用道具 举报

34#
发表于 2024-12-11 11:51:24 | 只看该作者
我抄了一个,东拼西凑的,实现了:利用原版系统,自动分区,选择系统,自动部署系统,激活并设置,驱动安装,软件安装,全自动,本想发上来请大家斧正的,权限不够

点评

$OEM$?  详情 回复 发表于 2024-12-26 20:13
回复

使用道具 举报

35#
发表于 2024-12-13 14:48:01 | 只看该作者
dong3626 发表于 2024-12-11 11:51
我抄了一个,东拼西凑的,实现了:利用原版系统,自动分区,选择系统,自动部署系统,激活并设置,驱动安装 ...

挺厉害的,想请教一下如何做到的
回复

使用道具 举报

36#
发表于 2024-12-21 17:24:41 | 只看该作者
我又来刷权限了
回复

使用道具 举报

37#
 楼主| 发表于 2024-12-26 20:13:14 | 只看该作者
dong3626 发表于 2024-12-11 11:51
我抄了一个,东拼西凑的,实现了:利用原版系统,自动分区,选择系统,自动部署系统,激活并设置,驱动安装 ...

$OEM$?
回复

使用道具 举报

38#
发表于 2024-12-27 09:59:26 | 只看该作者
先提供一个大纲吧,等权限到了,把整个批处理都贴上
REM =======================开始部署系统=======================
call :DisplayHDD
call :BestHDD
call :SelDisk
call :SelCreatePartition
call :SelOS
call :BeforeDepOSCheck
call :Confirm
call :StartCreatePartition
call :CheckCreatePartition
call :DisplayHDD
call :StartMountImg
call :StartDepOS
call :PreCopy
call :rb
call :eof

点评

看起来不错啊,期待成品  详情 回复 发表于 2024-12-31 17:34
回复

使用道具 举报

39#
 楼主| 发表于 2024-12-31 17:34:04 | 只看该作者
dong3626 发表于 2024-12-27 09:59
先提供一个大纲吧,等权限到了,把整个批处理都贴上
REM =======================开始部署系统=========== ...

看起来不错啊,期待成品
回复

使用道具 举报

40#
发表于 2025-1-1 18:12:55 | 只看该作者
菜鸟,抄的,有很多不足,看客请留情,请多提意见
  1. @echo off
  2. title ★ 系统安装脚本 By: H J J★
  3. :: Ver: 2.00
  4. :: Date: 2025-01-01

  5. REM 本脚本用于在 [ 微PE 2.3 ] 中自动部署系统及常用软件,脚本需要在U盘根目录中保存,并配合_OS及_Desktop目录及其文件运行
  6. REM 部署过程还必须的另外批处理为:MAS_AIO,PreInst.bat,RES.bat等,及批处理涉及的文件
  7. REM [ 批处理基础设置 ] 是一些基本设置,请自行修改
  8. REM 重装部分待完成

  9. REM =======================运行环境设置=======================
  10. SetLocal EnableDelayedExpansion
  11. REM 跳转到批处理所在目录
  12. set DirCurrent=%~dp0
  13. cd %DirCurrent%
  14. color 0F

  15. REM 只在微PE2.3中测试,其他的pe系统,请自行测试
  16. set CheckFile="%desktop%\微PE小助手.LNK"
  17. if not exist %CheckFile% (call :hightlight 4E "-  此批处理只在 · 微PE工具箱 2.3 · 中运行测试通过 任意键退出  -" & pause>nul & exit)
  18. choice /T 5 /C ync /CS /D y /n>nul

  19. REM 尝试修正运行环境
  20. if not exist "%windir%\system32\choice.exe" (copy %DirCurrent%_DESKTOP\choice.exe %windir%\system32\ /y)
  21. if not exist "%windir%\system32\find.exe" (copy %DirCurrent%_DESKTOP\find.exe %windir%\system32\ /y)
  22. if not exist "%windir%\system32\findstr.exe" (copy %DirCurrent%_DESKTOP\findstr.exe %windir%\system32\ /y)
  23. if not exist "%windir%\system32\mountvol.exe" (copy %DirCurrent%_DESKTOP\mountvol.exe %windir%\system32\ /y)


  24. REM   修正盘符占用 预备
  25. if exist C:\ (copy %DirCurrent%_DESKTOP\RES.bat "%USERPROFILE%\Desktop" /y)
  26. choice /T 5 /C ync /CS /D y /n>nul
  27. REM   下面的修正盘符的逻辑计划修改为:如果x盘被U盘占用,则启动RES.bat,并直接修改U盘盘符为U,然后卸载分区
  28. if exist C:\ (
  29.    if %~d0==C: (
  30.       start %USERPROFILE%\Desktop\RES.bat
  31.       for /f %%i in ('mountvol c: /l') do (
  32.          set "vol=%%i" &  mountvol C: /D & mountvol U: %vol%
  33.       )
  34.    ) else (
  35.       mountvol C: /D
  36.    )
  37. )

  38. if exist D:\ (
  39.    if %~d0==D: (
  40.       start %USERPROFILE%\Desktop\RES.bat
  41.       for /f %%i in ('mountvol d: /l') do (
  42.          set "vol=%%i" &  mountvol d: /D & mountvol U: %vol%
  43.       )
  44.    ) else (
  45.       mountvol D: /D
  46.    )
  47. )
  48. if exist E:\ (
  49.    if %~d0==E: (
  50.       start %USERPROFILE%\Desktop\RES.bat
  51.       for /f %%i in ('mountvol e: /l') do (
  52.          set "vol=%%i" &  mountvol E: /D & mountvol U: %vol%
  53.       )
  54.    ) else (
  55.       mountvol E: /D
  56.    )
  57. )
  58. if exist F:\ (
  59.    if %~d0==F: (
  60.       start %USERPROFILE%\Desktop\RES.bat
  61.       for /f %%i in ('mountvol F: /l') do (
  62.          set "vol=%%i" &  mountvol F: /D & mountvol U: %vol%
  63.       )
  64.    ) else (
  65.       mountvol F: /D
  66.    )
  67. )

  68. REM 确保盘符不被占用
  69. if exist C:\ (echo. & echo   盘符 C 占用修正失败 请手动安装系统 任意键退出 & pause>nul & exit)
  70. if exist D:\ (echo. & echo   盘符 D 占用修正失败 请手动安装系统 任意键退出 & pause>nul & exit)
  71. if exist E:\ (echo. & echo   盘符 E 占用修正失败 请手动安装系统 任意键退出 & pause>nul & exit)
  72. if exist F:\ (echo. & echo   盘符 E 占用修正失败 请手动安装系统 任意键退出 & pause>nul & exit)
  73. if exist T:\ (echo. & echo   盘符 T 占用修正失败 请手动安装系统 任意键退出 & pause>nul & exit)

  74. REM =======================批处理基本设置=======================
  75. REM 系统镜像文件及应答文件
  76. set WIN7IMG   =%DirCurrent%_OS\
  77. set WIN10IMG  =%DirCurrent%_OS\zh-cn_windows_10_consumer_editions_version_22h2_updated_oct_2024_x64_dvd_d0cfb2e9.iso
  78. set WIN11IMG  =%DirCurrent%_OS\zh-cn_windows_11_consumer_editions_version_24h2_x64_dvd_bfc0d79b.iso
  79. set W10LTSCIMG=%DirCurrent%_OS\WIN10_LTSC.iso
  80. REM 初始化应答文件
  81. set UNATT10PRO=%DirCurrent%_OS\UnattendFiles\WIN10.xml
  82. set UNATT11PRO=%DirCurrent%_OS\UnattendFiles\WIN11.xml
  83. set UNATT10LTSC=%DirCurrent%_OS\UnattendFiles\WIN10.xml
  84. REM oobe文件
  85. set OobeFile=%DirCurrent%_DESKTOP\oobe.cmd
  86. :: 默认等待时间
  87. set ETR=8


  88. :StartDeploy
  89. REM =======================开始部署系统=======================
  90. call :DisplayHDD
  91. call :BestHDD
  92. call :SelDisk
  93. call :SelCreatePartition
  94. call :SelOS
  95. call :BeforeDepOSCheck
  96. call :Confirm
  97. call :StartCreatePartition
  98. call :CheckCreatePartition
  99. call :DisplayHDD
  100. call :StartMountImg
  101. call :StartDepOS
  102. call :PreCopy
  103. call :rb
  104. call :eof


  105. :DisplayHDD
  106. REM =======================显示硬盘详情=======================
  107. REM 用于标记磁盘和硬盘分区
  108. REM TODO 这里 最后要互换一下
  109. set diskTag=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  110. set AllNo=0123456789
  111. REM 标记硬盘
  112. set DiskTotal=0
  113. set partitionNum=0
  114. rem 设置分区ID,用于文件系统辅助识别
  115. set "$01=FAT12"
  116. set "$02=Xenix /"
  117. set "$03=Xenix /usr"
  118. set "$04=FAT16 <32M"
  119. set "$05=Extended"
  120. set "$06=FAT16 >=32M"
  121. set "$07=HPFS/NTFS/exFAT"
  122. set "$08=AIX"
  123. set "$09=AIX Boot"
  124. set "$0A=OS/2 Boot"
  125. set "$0B=FAT32"
  126. set "$0C=FAT32 LBA"
  127. set "$0E=FAT16 LBA"
  128. set "$0F=Extended LBA"
  129. set "$10=OPUS"
  130. set "$11=Hidden FAT12"
  131. set "$12=Compaq Diagnostics"
  132. set "$14=Hidden FAT16 <32M"
  133. set "$16=Hidden FAT16 >=32M"
  134. set "$17=Hidden HPFS/NTFS"
  135. set "$18=AST Swap"
  136. set "$1B=Hidden FAT32"
  137. set "$1C=Hidden FAT32 LBA"
  138. set "$1E=Hidden FAT16 LBA"
  139. set "$24=NEC DOS"
  140. set "$27=Microsoft Recovery Partition"
  141. set "$35=OS/2 JFS"
  142. set "$38=THE OS V3 2gb"
  143. set "$39=THE OS V4 spanned"
  144. set "$3A=THE OS V4 4gb"
  145. set "$3B=THE OS V4 extended"
  146. set "$3C=PartitionMagic recovery"
  147. set "$3D=Novell Netware(Hidden)"
  148. set "$40=VENIX 286"
  149. set "$41=Linux/MINIX (sharing with DRDOS)"
  150. set "$42=RAID"
  151. set "$43=Linux native (sharing with DRDOS)"
  152. set "$45=Boot-US"
  153. set "$4C=Oberon"
  154. set "$4D=QNX 4.2 Primay"
  155. set "$4E=QNX 4.2 Secondary"
  156. set "$4F=QNX 4.2 Tertiary"
  157. set "$50=DM (DIsk Danager)"
  158. set "$51=Novell(or DM6 Aux1)"
  159. set "$52=CP/M or Microport SysV/AT"
  160. set "$53=DM6 Aux3"
  161. set "$54=DM6"
  162. set "$55=ES-Drive (Disk Manager)"
  163. set "$56=Golded Bow (Disk Manager)"
  164. set "$57=DrivePro"
  165. set "$5C=Priam Edisk (Disk Manager)"
  166. set "$61=SpeedStor"
  167. set "$63=UNIX, System V/386, GNU HURD or Mach"
  168. set "$64=Novell Netware/286 2.xx"
  169. set "$65=Novell Netware/386 3.xx"
  170. set "$66=Novell"
  171. set "$67=Novell"
  172. set "$68=Novell"
  173. set "$69=Novell"
  174. set "$70=DiskSecure Multi-Boot"
  175. set "$74=Scramdisk"
  176. set "$75=PC/IX"
  177. set "$77=QNX4.x"
  178. set "$78=QNX4.x 2nd part"
  179. set "$79=QNX4.x 3rd part"
  180. set "$80=Minix util 1.4a"
  181. set "$81=Early Linux, or Minix since 1.4b"
  182. set "$82=Linux Swap"
  183. set "$83=Linux Native, or Ext2/3/4 (Linux Data)"
  184. set "$85=Linux extended"
  185. set "$86=FAT16 volume"
  186. set "$87=NTFS volume"
  187. set "$8B=FAT32 volume"
  188. set "$8C=FAT32 LBA volume"
  189. set "$93=Amoeba"
  190. set "$94=Amoeba bad block table"
  191. set "$9F=BSD/OS"
  192. set "$A0=Hibernation"
  193. set "$A1=Hibernation"
  194. set "$A5=FreeBSD/NetBSD"
  195. set "$A6=OpenBSD"
  196. set "$A7=NextStep"
  197. set "$A9=NetBSD"
  198. set "$AA=Olivetti FAT12"
  199. set "$AC=IBM JFS"
  200. set "$B7=BSDI BSD/386"
  201. set "$B8=BSDI BSD/386 Swap"
  202. set "$BE=Solaris boot"
  203. set "$C0=DR-DOS"
  204. set "$C1=DRDOS/sec FAT12"
  205. set "$C4=DRDOS/sec FAT16"
  206. set "$C6=Corrupted FAT16"
  207. set "$C7=Corrupted NTFS"
  208. set "$D8=CP/M-86"
  209. set "$DB=CP/M, Concurrent DOS or CTOS"
  210. set "$DF=BootIt"
  211. set "$E1=DOS access FAT12"
  212. set "$E3=DOS R/O or SpeedStor"
  213. set "$E4=SpeedStor FAT16"
  214. set "$EB=BeOS"
  215. set "$EE=Protected MBR"
  216. set "$EF=EFI System Partition"
  217. set "$F1=SpeedStor"
  218. set "$F2=DOS 3.3+ Secondary"
  219. set "$F4=SpeedStor Large"
  220. set "$FB=VMware VMFS"
  221. set "$FC=VMware Swap"
  222. set "$FD=Linux RAID"
  223. set "$FE=SpeedStor"
  224. set "$FF=XENIX bad blocks table"

  225. rem 设置GPT标识符,数据来自英文维基百科,不保证正确,仅供参考
  226. set "$00000000-0000-0000-0000-000000000000=未使用"
  227. set "$024DEE41-33E7-11D3-9D69-0008C781F39F=MBR分区表"
  228. set "$C12A7328-F81F-11D2-BA4B-00A0C93EC93B=ESP"
  229. set "$21686148-6449-6E6F-744E-656564454649=BIOS引导分区"
  230. set "$D3BFE2DE-3DAF-11DF-BA40-E3A556D89593=iFFS分区(Intel快速启动)"
  231. set "$F4019732-066E-4E12-8273-346C5641494F=Sony引导分区"
  232. set "$BFBFAFE7-A34F-448A-9A5B-6213EB736C22=Lenovo引导分区"
  233. set "$E3C9E316-0B5C-4DB8-817D-F92DF00215AE=MSR"
  234. set "$EBD0A0A2-B9E5-4433-87C0-68B6B72699C7=基本数据分区"
  235. set "$5808C8AA-7E8F-42E0-85D2-E1E90434CFB3=LDM元数据分区"
  236. set "$AF9B60A0-1431-4F62-BC68-3311714A69AD=LDM数据分区"
  237. set "$DE94BBA4-06D1-4D40-A16A-BFD50179D6AC=WinRE"
  238. set "$37AFFC90-EF7D-4E96-91C3-2D7AE055B174=IBM GPFS分区"
  239. set "$E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D=存储空间分区"
  240. set "$75894C1E-3AEB-11D3-B7C1-7B03A0000000=HP-UX 数据分区"
  241. set "$E2A1E728-32E3-11D6-A682-7B03A0000000=HP-UX 服务分区"
  242. set "$0FC63DAF-8483-4772-8E79-3D69D8477DE4=Linux 文件系统数据"
  243. set "$A19D880F-05FC-4D3B-A006-743F0F84911E=Linux RAID 分区"
  244. set "$44479540-F297-41B2-9AF7-D131D5F0458A=Linux / (x86)"
  245. set "$4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709=Linux / (x86-64)"
  246. set "$69DAD710-2CE4-4E3C-B16C-21A1D49ABED3=Linux / (32-bit ARM)"
  247. set "$B921B045-1DF0-41C3-AF44-4C6F280D3FAE=Linux / (64-bit ARM/AArch64)"
  248. set "$0657FD6D-A4AB-43C4-84E5-0933C84B4F4F=Linux 交换分区"
  249. set "$E6D6D379-F507-44C2-A23C-238F2A3DF928=Linux 逻辑卷管理器(LVM)分区"
  250. set "$933AC7E1-2EB4-4F13-B844-0E14E2AEF915=Linux /home"
  251. set "$3B8F8425-20E0-4F3B-907F-1A25A76F98E8=Linux /srv"
  252. set "$7FFEC5C9-2D00-49B7-8941-3EA10A5586B7=Linux 普通dm-crypt分区"
  253. set "$CA7D7CCB-63ED-4C53-861C-1742536059CC=Linux LUKS分区"
  254. set "$8DA63339-0007-60C0-C436-083AC8230908=Linux 保留"
  255. set "$83BD6B9D-7F41-11DC-BE0B-001560B84F0F=FreeBSD 启动分区"
  256. set "$516E7CB4-6ECF-11D6-8FF8-00022D09712B=FreeBSD 数据分区"
  257. set "$516E7CB5-6ECF-11D6-8FF8-00022D09712B=FreeBSD 交换分区"
  258. set "$516E7CB6-6ECF-11D6-8FF8-00022D09712B=FreeBSD UFS分区"
  259. set "$516E7CB8-6ECF-11D6-8FF8-00022D09712B=FreeBSD Vinum 卷管理器分区"
  260. set "$516E7CBA-6ECF-11D6-8FF8-00022D09712B=FreeBSD ZFS分区"
  261. set "$48465300-0000-11AA-AA11-00306543ECAC=Mac OS X HFS+分区"
  262. set "$7C3457EF-0000-11AA-AA11-00306543ECAC=Mac OS X Apple APFS"
  263. set "$55465300-0000-11AA-AA11-00306543ECAC=Mac OS X Apple UFS container"
  264. set "$6A898CC3-1DD2-11B2-99A6-080020736631=Mac OS X ZFS"
  265. set "$52414944-0000-11AA-AA11-00306543ECAC=Mac OS X Apple RAID分区"
  266. set "$52414944-5F4F-11AA-AA11-00306543ECAC=Mac OS X Apple RAID分区,离线"
  267. set "$426F6F74-0000-11AA-AA11-00306543ECAC=Mac OS X Apple引导分区(恢复HD)"
  268. set "$4C616265-6C00-11AA-AA11-00306543ECAC=Mac OS X Apple Label"
  269. set "$5265636F-7665-11AA-AA11-00306543ECAC=Mac OS X Apple TV恢复分区"
  270. set "$53746F72-6167-11AA-AA11-00306543ECAC=Mac OS X Apple 核心存储分区  "
  271. set "$B6FA30DA-92D2-4A9A-96F1-871EC6486200=Mac OS X SoftRAID_Status"
  272. set "$2E313465-19B9-463F-8126-8A7993773801=Mac OS X SoftRAID_Scratch"
  273. set "$FA709C7E-65B1-4593-BFD5-E71D61DE9B02=Mac OS X SoftRAID_Volume"
  274. set "$BBBA6DF5-F46F-4A89-8F59-8765B2727503=Mac OS X SoftRAID_Cache"
  275. set "$6A82CB45-1DD2-11B2-99A6-080020736631=Solaris illumos启动分区"
  276. set "$6A85CF4D-1DD2-11B2-99A6-080020736631=Solaris /"
  277. set "$6A87C46F-1DD2-11B2-99A6-080020736631=Solaris 交换分区"
  278. set "$6A8B642B-1DD2-11B2-99A6-080020736631=Solaris 备份分区"
  279. set "$6A898CC3-1DD2-11B2-99A6-080020736631=Solaris /usr"
  280. set "$6A8EF2E9-1DD2-11B2-99A6-080020736631=Solaris /var"
  281. set "$6A90BA39-1DD2-11B2-99A6-080020736631=Solaris /home"
  282. set "$6A9283A5-1DD2-11B2-99A6-080020736631=Solaris 备用扇区"
  283. set "$6A945A3B-1DD2-11B2-99A6-080020736631=Solaris 保留分区"
  284. set "$6A9630D1-1DD2-11B2-99A6-080020736631=Solaris 保留分区"
  285. set "$6A980767-1DD2-11B2-99A6-080020736631=Solaris 保留分区"
  286. set "$6A96237F-1DD2-11B2-99A6-080020736631=Solaris 保留分区"
  287. set "$6A8D2AC7-1DD2-11B2-99A6-080020736631=Solaris 保留分区"
  288. set "$49F48D32-B10E-11DC-B99B-0019D1879648=NetBSD 交换分区"
  289. set "$49F48D5A-B10E-11DC-B99B-0019D1879648=NetBSD FFS分区"
  290. set "$49F48D82-B10E-11DC-B99B-0019D1879648=NetBSD LFS分区"
  291. set "$49F48DAA-B10E-11DC-B99B-0019D1879648=NetBSD RAID分区"
  292. set "$2DB519C4-B10F-11DC-B99B-0019D1879648=NetBSD 串联分区"
  293. set "$2DB519EC-B10F-11DC-B99B-0019D1879648=NetBSD 加密分区"
  294. set "$FE3A2A5D-4F32-41A7-B725-ACCC3285A309=Chrome OS 内核"
  295. set "$3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC=Chrome OS 根文件系统"
  296. set "$2E0A753D-9E48-43B0-8337-B15192CB1B5E=Chrome OS 未来用途"
  297. set "$42465331-3BA3-10F1-802A-4861696B7521=Haiku BFS"
  298. set "$85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7=MidnightBSD 启动分区"
  299. set "$85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7=MidnightBSD 数据分区"
  300. set "$85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7=MidnightBSD 交换分区"
  301. set "$0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7=MidnightBSD UFS分区"
  302. set "$85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7=MidnightBSD Vinum 卷管理器分区"
  303. set "$85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7=MidnightBSD ZFS分区"
  304. set "$45B0969E-9B03-4F30-B4C6-B4B80CEFF106=Ceph Journal"
  305. set "$45B0969E-9B03-4F30-B4C6-5EC00CEFF106=Ceph dm-crypt journal"
  306. set "$4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D=Ceph OSD"
  307. set "$4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D=Ceph dm-crypt OSD"
  308. set "$89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE=Ceph 创建中的磁盘"
  309. set "$89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE=Ceph 创建中的dm-crypt磁盘"
  310. set "$CAFECAFE-9B03-4F30-B4C6-B4B80CEFF106=Ceph 块"
  311. set "$30CD0809-C2B2-499C-8879-2D6B78529876=Ceph 块数据库"
  312. set "$5CE17FCE-4087-4169-B7FF-056CC58473F9=Ceph 块写前日志"
  313. set "$FB3AABF9-D25F-47CC-BF5E-721D1816496B=Ceph dm-crypt密钥保险箱"
  314. set "$4FBD7E29-8AE0-4982-BF9D-5A8D867AF560=Ceph Multipath OSD"
  315. set "$45B0969E-8AE0-4982-BF9D-5A8D867AF560=Ceph Multipath journal"
  316. set "$CAFECAFE-8AE0-4982-BF9D-5A8D867AF560=Ceph Multipath 块"
  317. set "$7F4A666A-16F3-47A2-8445-152EF4D03F6C=Ceph Multipath 块"
  318. set "$EC6D6385-E346-45DC-BE91-DA2A7C8B3261=Ceph Multipath 块数据库"
  319. set "$01B41E1B-002A-453C-9F17-88793989FF8F=Ceph Multipath 块写前日志"
  320. set "$CAFECAFE-9B03-4F30-B4C6-5EC00CEFF106=Ceph dm-crypt 块"
  321. set "$93B0052D-02D9-4D8A-A43B-33A3EE4DFBC3=Ceph dm-crypt 块数据库"
  322. set "$306E8683-4FE2-4330-B7C0-00A917C16966=Ceph dm-crypt 块写前日志"
  323. set "$45B0969E-9B03-4F30-B4C6-35865CEFF106=Ceph dm-crypt LUKS journal"
  324. set "$CAFECAFE-9B03-4F30-B4C6-35865CEFF106=Ceph dm-crypt LUKS 块"
  325. set "$166418DA-C469-4022-ADF4-B30AFD37F176=Ceph dm-crypt LUKS 块数据库"
  326. set "$86A32090-3647-40B9-BBBD-38D8C573AA86=Ceph dm-crypt LUKS 块写前日志"
  327. set "$4FBD7E29-9D25-41B8-AFD0-35865CEFF05D=Ceph dm-crypt LUKS OSD"
  328. set "$824CC7A0-36A8-11E3-890A-952519AD3F61=OpenBSD 数据分区"
  329. set "$CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1=QNX Power-safe (QNX6) 文件系统"
  330. set "$C91818F9-8025-47AF-89D2-F030D7000C2C=Plan 9 分区"
  331. set "$9D275380-40AD-11DB-BF97-000C2911D1B8=VMware ESX vmkcore (核心转储分区)"
  332. set "$AA31E02A-400F-11DB-9590-000C2911D1B8=VMware ESX VMFS文件系统分区"
  333. set "$9198EFFC-31C0-11DB-8F78-000C2911D1B8=VMware ESX VMware 保留"
  334. set "$2568845D-2332-4675-BC39-8FA5A4748D15=Android-IA Bootloader"
  335. set "$114EAFFE-1552-4022-B26E-9B053604CF84=Android-IA Bootloader2"
  336. set "$49A4D17F-93A3-45C1-A0DE-F50B2EBE2599=Android-IA Boot"
  337. set "$4177C722-9E92-4AAB-8644-43502BFD5506=Android-IA Recovery"
  338. set "$EF32A33B-A409-486C-9141-9FFB711F6266=Android-IA Misc"
  339. set "$20AC26BE-20B7-11E3-84C5-6CFDB94711E9=Android-IA Metadata"
  340. set "$38F428E6-D326-425D-9140-6E0EA133647C=Android-IA System"
  341. set "$A893EF21-E428-470A-9E55-0668FD91A2D9=Android-IA Cache"
  342. set "$DC76DDA9-5AC1-491C-AF42-A82591580C0D=Android-IA Data"
  343. set "$EBC597D0-2053-4B15-8B64-E0AAC75F4DB1=Android-IA Persistent"
  344. set "$C5A0AEEC-13EA-11E5-A1B1-001E67CA0C3C=Android-IA Vendor"
  345. set "$BD59408B-4514-490D-BF12-9878D963F378=Android-IA Config"
  346. set "$8F68CC74-C5E5-48DA-BE91-A0C8C15E9C80=Android-IA Factory"
  347. set "$9FDAA6EF-4B3F-40D2-BA8D-BFF16BFB887B=Android-IA Factory (alt)"
  348. set "$767941D0-2085-11E3-AD3B-6CFDB94711E9=Android-IA Fastboot/Tertiary"
  349. set "$AC6D7924-EB71-4DF8-B48D-E267B27148FF=Android-IA OEM"
  350. set "$19A710A2-B3CA-11E4-B026-10604B889DCF=Android 6.0+ ARM Android Meta"
  351. set "$193D1EA4-B3CA-11E4-B075-10604B889DCF=Android 6.0+ ARM Android EXT"
  352. set "$7412F7D5-A156-4B13-81DC-867174929325=ONIE Boot"
  353. set "$D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149=ONIE Config"
  354. set "$9E1A2D38-C612-4316-AA26-8B49521E5A8B=PowerPC 准备启动"
  355. set "$BC13C2FF-59E6-4262-A352-B275FD6F7172=freedesktop.org OSes 共享启动加载程序配置"
  356. set "$734E5AFE-F61A-11E6-BC64-92361F002671=Atari TOS 基本数据分区 (GEM, BGM, F32)"



  357. echo.
  358. echo _________________________________________________________________
  359. echo.
  360. echo    当前电脑挂载的硬盘:
  361. rem 组织并显示磁盘详情,并详细标记磁盘,方便后面使用
  362. for /f "skip=9 tokens=2 delims= " %%a in ('echo list disk^|diskpart') do (
  363.    rem 下面提取硬盘信息 %%a就是磁盘的编号
  364.    for /f "delims=" %%b in ('(echo sel disk %%a ^& echo detail disk^)^|diskpart') do (
  365.       rem 取: 硬盘型号,id->硬盘分区格式,磁盘类型,整理合并信息成为一行便于显示
  366.       set "CurrentLine=%%b"
  367.       set /a LineCount+=1
  368.       if "!CurrentLine:~0,5!"=="在计算机上" (set /a modelpartInfoLineNo=!LineCount!+4 & set /a idPartInfoLineNo=!LineCount!+5 & set /a typepartInfoLineNo=!LineCount!+6)
  369.       if !LineCount!==!modelpartInfoLineNo! (set diskModelTemp=!CurrentLine! & set "diskModelTemp=!diskModelTemp: USB  =!" & set "diskModel=!diskModelTemp!        ")
  370.       if !LineCount!==!idPartInfoLineNo! (set diskID=!CurrentLine:~7! & (if "!diskID:-=!"=="!diskID!" (set "partFormat=MBR") else (set "partFormat=GPT")))
  371.       set "Disk_%%a_partFormat=!partFormat!"
  372.       if !LineCount!==!typepartInfoLineNo! (
  373.          set "diskProtocol=  !CurrentLine:~7!" & set "diskProtocol=!diskProtocol:~-4!"
  374.          echo.
  375.          set "Disk_%%a_Title= -!diskTag:~%%a,1!-   %%a      !diskProtocol!  !partFormat!            !diskModel:~0,26! -"
  376.          call :hightlight 4e "  !Disk_%%a_Title!"
  377.          echo.
  378.          set "Disk_%%a_No=%%a"
  379.          set "Disk_%%a_partFormat=!partFormat!"
  380.          set "Disk_%%a_Protocol=!diskProtocol!"
  381.          set "Disk_%%a_Model=!diskModel:~0,26!"
  382.          set "Disk_%%a_Info=%%a !diskProtocol! !partFormat! !diskModel!"
  383.          set /a DiskTotal+=1
  384.       )
  385.    )
  386.    rem 下面遍历每个分区,并提取合并处理每个分区的信息
  387.    for /f "tokens=2 delims= " %%c in ('(echo sel disk %%a ^& echo list part ^& exit^)^|diskpart^|findstr /i "系统 主要 未知 保留 逻辑"') do (
  388.       set /a partitionNum+=1
  389.       for /f "delims=" %%d in ('(echo sel disk %%a ^& echo list part ^& echo sel part %%c ^& echo det part^)^|diskpart') do (
  390.          set "partInfoLineContent=%%d"
  391.          set /a partInfoLineNo+=1
  392.          if "!partInfoLineContent:~0,7!"=="  分区   " (
  393.             for /f "tokens=2-5 delims= " %%e in ("!partInfoLineContent!") do (
  394.                if %%c==%%e (
  395.                   set "sss=     %%g%%h"&set "sss=!sss:~-6!"
  396.                   set tinfo= %%a:%%c   !sss!
  397.                   set "Part_!partitionNum!_DiskNo=%%a"
  398.                   set "Part_!partitionNum!_PartNo=%%c"
  399.                   set "Part_!partitionNum!_Size=!sss!"
  400.                )
  401.             )
  402.          )
  403.          if "!partInfoLineContent:~0,2!"=="类型" (for /f "tokens=3 delims= " %%l in ("!partInfoLineContent!") do (set "emo=!$%%l!"))
  404.          if "!partInfoLineContent:~0,4!"=="字节偏移" (set /a lll=!partInfoLineNo!+3 & set /a kkk=!partInfoLineNo!+2)
  405.          if !partInfoLineNo!==!lll! (
  406.             if "!partInfoLineContent:~0,1!"=="*" (
  407.                set pf=!partInfoLineContent:~14,1!
  408.                if exist "!pf!:\windows\system32\version.dll" (set "hos=OS" & (if exist "!pf!:\boot\memtest.ext" (set "yd=BIOS") else (set "yd=UEFI"))) else (set "hos=  " & set "yd=    ")
  409.                set bq=!partInfoLineContent:~17,6!
  410.                set fss=!partInfoLineContent:~31,5!
  411.                (if "!emo:ESP=!"=="!emo!" (echo "">nul) else (set "fss=ESP" & set "Disk_%%a_ESP_QH=%%c" & set "Disk_%%a_ESP_QH=1"))
  412.                (if "!emo:MSR=!"=="!emo!" (echo "">nul) else (set "fss=MSR"))
  413.                set "Part_!partitionNum!_DriveLetter=!pf!"
  414.                set "Part_!partitionNum!_OSTag=!hos!"
  415.                set "Part_!partitionNum!_bootType=!yd!"
  416.                set "Part_!partitionNum!_FileSystem=!fss!"
  417.                set "Part_!partitionNum!_Title=  !partitionNum!  !tinfo!   !pf!    !hos! !yd!  !fss!"
  418.                set "Part_!partitionNum!_Info=%%a %%c !pf! !fss!"
  419.                set "Disk_%%a_partTotal=%%c"
  420.                echo     !partitionNum!  !tinfo!   !pf!    !hos! !yd!  !fss!
  421.                set "Disk_%%a_partInfo_%%c=%%a %%c !pf! !fss!"
  422.             )
  423.          )
  424.          if !partInfoLineNo!==!kkk! (
  425.             if "!partInfoLineContent:~0,1!"=="D" (
  426.                set "Part_!partitionNum!_DriveLetter= "
  427.                set "Part_!partitionNum!_OSTag= "
  428.                set "Part_!partitionNum!_bootType= "
  429.                set "Part_!partitionNum!_FileSystem=!emo!"
  430.                set "Part_!partitionNum!_Title=  !partitionNum!  !tinfo!                 !emo!"
  431.                set "Part_!partitionNum!_Info=%%a %%c - !emo!"
  432.                set "Disk_%%a_partTotal=%%c"
  433.                echo     !partitionNum!  !tinfo!                 !emo!
  434.                set "Disk_%%a_partInfo_%%c=%%a %%c   !emo!"
  435.             )
  436.          )
  437.       )
  438.    )
  439. )
  440. echo _________________________________________________________________
  441. echo.
  442. goto :eof


  443. :BestHDD
  444. REM ============================系统硬盘推荐============================
  445. set /a "Disk_No=!DiskTotal!-1"
  446. for /l %%n in (0,1,!Disk_No!) do (
  447.    if /i "!Disk_%%n_Protocol!"=="nvme" (echo    推荐将系统安装到下面硬盘: & call :hightlight A0 "  !Disk_%%n_Title!" & echo.)
  448. )
  449. goto :eof



  450. :SelDisk
  451. REM =======================选择系统硬盘=======================
  452. echo.
  453. set targetDiskNo=
  454. echo    全新安装,请根据编号选择硬盘 [ !diskTag:~0,%DiskTotal%! ]
  455. if !partitionNum! gtr 2 (echo    重装系统,请根据编号选择分区 [ 123 ... !partitionNum! ])

  456. choice /c ABCDE123456789 /n>nul
  457. if %errorlevel%==14 (set "targetDiskNo=!Part_9_DiskNo!" & set "targetPartNo=9" & set "targetPartLetter=!Part_9_DriveLetter!" & set "targetESPLetter=!!")
  458. if %errorlevel%==13 (set "targetDiskNo=!Part_8_DiskNo!" & set "targetPartNo=8" & set "targetPartLetter=!Part_8_DriveLetter!" & set "targetESPLetter=!!")
  459. if %errorlevel%==12 (set "targetDiskNo=!Part_7_DiskNo!" & set "targetPartNo=7" & set "targetPartLetter=!Part_7_DriveLetter!" & set "targetESPLetter=!!")
  460. if %errorlevel%==11 (set "targetDiskNo=!Part_6_DiskNo!" & set "targetPartNo=6" & set "targetPartLetter=!Part_6_DriveLetter!" & set "targetESPLetter=!!")
  461. if %errorlevel%==10 (set "targetDiskNo=!Part_5_DiskNo!" & set "targetPartNo=5" & set "targetPartLetter=!Part_5_DriveLetter!" & set "targetESPLetter=!!")
  462. if %errorlevel%==9  (set "targetDiskNo=!Part_4_DiskNo!" & set "targetPartNo=4" & set "targetPartLetter=!Part_4_DriveLetter!" & set "targetESPLetter=!!")
  463. if %errorlevel%==8  (set "targetDiskNo=!Part_3_DiskNo!" & set "targetPartNo=3" & set "targetPartLetter=!Part_3_DriveLetter!" & set "targetESPLetter=!!")
  464. if %errorlevel%==7  (set "targetDiskNo=!Part_2_DiskNo!" & set "targetPartNo=2" & set "targetPartLetter=!Part_2_DriveLetter!" & set "targetESPLetter=!!")
  465. if %errorlevel%==6  (set "targetDiskNo=!Part_1_DiskNo!" & set "targetPartNo=1" & set "targetPartLetter=!Part_1_DriveLetter!" & set "targetESPLetter=!!")
  466. if %errorlevel%==5  (set "targetDiskNo=4"               & set "targetPartNo=3" & set "targetPartLetter=C"                    & set "targetESPLetter=Z")
  467. if %errorlevel%==4  (set "targetDiskNo=3"               & set "targetPartNo=3" & set "targetPartLetter=C"                    & set "targetESPLetter=Z")
  468. if %errorlevel%==3  (set "targetDiskNo=2"               & set "targetPartNo=3" & set "targetPartLetter=C"                    & set "targetESPLetter=Z")
  469. if %errorlevel%==2  (set "targetDiskNo=1"               & set "targetPartNo=3" & set "targetPartLetter=C"                    & set "targetESPLetter=Z")
  470. if %errorlevel%==1  (set "targetDiskNo=0"               & set "targetPartNo=3" & set "targetPartLetter=C"                    & set "targetESPLetter=Z")
  471. :: 硬盘选择的逻辑待修改
  472. :: 硬盘选择有效检查待加入

  473. echo.
  474. echo 磁盘选择结束
  475. goto :eof

  476. :SelDisk_old
  477. REM =======================选择系统硬盘=======================
  478. echo 这个是老版本的
  479. echo.
  480. set targetDiskNo=
  481. set /a "partitionNum=!DiskTotal!-1"
  482. SET /p SelDisk=请选择目标系统盘磁盘编号 [ !diskTag:~0,%DiskTotal%! ]:
  483. if not defined SelDisk echo 未输入内容 请重新输入&echo.&goto :SelDisk
  484. for /l %%i in (0,1,!partitionNum!) do (if !SelDisk! equ %%i (echo. & set targetDiskNo=%%i))
  485. if not defined targetDiskNo echo. & echo  · 磁盘编号输入错误 请重新输入 & goto :SelDisk
  486. goto :eof

  487. :SelCreatePartition
  488. echo.
  489. echo    _____________________选择分区方案_____________________
  490. echo   ^|                                                      ^|
  491. echo   ^|  [ 1 ] 1分区,全部分配给C盘【默认选项】              ^|
  492. echo   ^|  [ 2 ] 2分区,C盘200G,其他给D盘                     ^|
  493. echo   ^|  [ 3 ] 3分区,C盘200G,D盘500G,其他给E盘            ^|
  494. echo   ^|  [ 0 ] 返回 重新选择                                 ^|
  495. echo   ^|______________________________________________________^|
  496. echo.
  497. echo    请选择硬盘分区方案 [1230],%ETR%秒后选择默认分区方案:
  498. choice /c 1230 /n>nul /t %ETR% /d 1
  499. if %errorlevel%==4 (goto :SelCreatePartition)
  500. if %errorlevel%==3 (set "CPName=3分区,C盘200G D盘500G 其他给E盘" & set "CreatePart=CreatePartition3")
  501. if %errorlevel%==2 (set "CPName=2分区,C盘200G,其他给D盘       " & set "CreatePart=CreatePartition2")
  502. if %errorlevel%==1 (set "CPName=1分区,全部分配给C盘            " & set "CreatePart=CreatePartition1")
  503. goto :eof


  504. :SelOS
  505. echo.
  506. echo    _____________________选择操作系统_____________________
  507. echo   ^|                                                      ^|
  508. echo   ^|  [ 1 ] WIN10 专业版  【默认选项】                    ^|
  509. echo   ^|  [ 2 ] WIN11 专业版                                  ^|
  510. echo   ^|  [ 3 ] WIN10 LTSC                                    ^|
  511. echo   ^|  [ 0 ] 返回 重新选择                                 ^|
  512. echo   ^|______________________________________________________^|
  513. echo.
  514. echo    请选择操作系统 [1230],%ETR%秒后默认系统:
  515. choice /c 1230 /n>nul /t %ETR% /d 1
  516. if %errorlevel%==4 (goto :SelOS)
  517. if %errorlevel%==3 (set "OSImageFile=%W10LTSCIMG%" & set "OSIndex=1" & set "OSName=Windows 10 LTSC" & set "UnattFile=%UNATT10LTSC%")
  518. if %errorlevel%==2 (set "OSImageFile=%WIN11IMG%"   & set "OSIndex=4" & set "OSName=Windows 11 Pro " & set "UnattFile=%UNATT11PRO%" )
  519. if %errorlevel%==1 (set "OSImageFile=%WIN10IMG%"   & set "OSIndex=4" & set "OSName=Windows 10 Pro " & set "UnattFile=%UNATT10PRO%" )
  520. goto :eof


  521. :BeforeDepOSCheck
  522. echo ======================= 部署前确认 =======================
  523. echo.
  524. REM 检测 启动模式,引导模式,目标硬盘,目标系统盘,系统版本,镜像文件,自动应答文件等等
  525. if not exist %UnattFile%   (echo. & echo 自动应答文件不存在 请检查 %UnattFile% 任意键退出 & pause>nul & exit)
  526. if not exist %OSImageFile% (echo. & echo 系统镜像不存在 请检查 %OSImageFile%  任意键退出  & pause>nul & exit)
  527. REM 检查系统盘是否非空 [TODO]
  528. for /f "delims=" %%a in ('dir /a /b %targetPartLetter%') do (set /a b+=1 & echo %b% & if %b% gtr 1 goto :SelDisk)
  529. goto :eof

  530. :Confirm
  531. REM 显示装机方案待确认
  532. echo.
  533. echo    _____________________确认安装方案_____________________
  534. echo   ^|                                                      ^|
  535. echo   ^|  目标系统 %OSName%                            ^|
  536. echo   ^|  目标硬盘 %targetDiskNo% - !DISK_%targetDiskNo%_Model!            ^|
  537. echo   ^|  分区方案 %CPName%            ^|
  538. echo   ^|                                                      ^|
  539. echo   ^|      [ Y ] 确认上述方案  [ X ] 返回 重新选择         ^|
  540. echo   ^|______________________________________________________^|
  541. echo.
  542. ::call :hightlight 4E "-            所选硬盘数据将会彻底丢失 务必确认             -"
  543. choice /c xy /n>nul
  544. if %errorlevel%==2 (echo   已经确认继续安装 & goto :eof)
  545. if %errorlevel%==1 (cls & echo   返回 重新 选择 & goto :StartDeploy)
  546. goto :eof

  547. :StartCreatePartition
  548. :: 跳转到相应分区方案 开始分区
  549. if %CreatePart%==CreatePartition1 (goto :CreatePartition1)
  550. if %CreatePart%==CreatePartition2 (goto :CreatePartition2)
  551. if %CreatePart%==CreatePartition3 (goto :CreatePartition3)
  552. goto :eof

  553. :CreatePartition1
  554. echo =======================开始硬盘分区  1个分区: 都给系统盘=======================
  555. (
  556. echo select disk %targetDiskNo%
  557. echo clean
  558. echo clean
  559. echo convert gpt
  560. :: 创建EFI分区,大小为500M
  561. echo create partition efi size=500
  562. echo format fs=fat32 label="EFI" quick
  563. echo assign letter=z
  564. :: 创建MSR分区,大小为128M
  565. echo create partition msr size=128
  566. echo format fs=fat32 quick
  567. :: 创建主分区
  568. echo create partition primary
  569. echo format fs=ntfs quick
  570. echo assign letter=c
  571. echo list volume
  572. echo exit
  573. )|diskpart
  574. goto :eof

  575. :CreatePartition2
  576. echo ======================= 开始硬盘分区  2个分区: 200G+REST =======================
  577. (
  578. echo select disk %targetDiskNo%
  579. echo clean
  580. echo clean
  581. echo convert gpt
  582. :: 创建EFI分区,大小为500M
  583. echo create partition efi size=500
  584. echo format fs=fat32 label="EFI" quick
  585. echo assign letter=z
  586. :: 创建MSR分区,大小为128M
  587. echo create partition msr size=128
  588. echo format fs=fat32 quick
  589. :: 创建主分区, 大小为100G,如需修改大小,请直接替换下面size=[ 100G -> 102407  200G -> 204806 ]
  590. echo create partition primary size=204806
  591. echo format fs=ntfs quick
  592. echo assign letter=c
  593. :: 创建第二个主分区, 大小为剩余容量
  594. echo create partition primary
  595. echo format fs=ntfs quick
  596. echo assign letter=d
  597. echo list volume
  598. echo exit
  599. )|diskpart
  600. goto :eof

  601. :CreatePartition3
  602. echo =======================开始硬盘分区 3个分区:200G+500G+REST =======================
  603. (
  604. echo select disk %targetDiskNo%
  605. echo clean
  606. echo clean
  607. echo convert gpt
  608. :: 创建EFI分区,大小为500M
  609. echo create partition efi size=500
  610. echo format fs=fat32 label="EFI" quick
  611. echo assign letter=z
  612. :: 创建MSR分区,大小为128M
  613. echo create partition msr size=128
  614. echo format fs=fat32 quick
  615. :: 创建主分区, 大小为200G,如需修改大小,请直接替换下面size=[ 204806 ]
  616. echo create partition primary size=204806
  617. echo format fs=ntfs quick
  618. echo assign letter=c
  619. :: 创建第二个主分区, 大小为500G
  620. echo create partition primary size=512002
  621. echo format fs=ntfs quick
  622. echo assign letter=d
  623. :: 创建第三个主分区, 大小为剩余容量
  624. echo create partition primary
  625. echo format fs=ntfs quick
  626. echo assign letter=e
  627. echo list volume
  628. echo exit
  629. )|diskpart
  630. goto :eof

  631. :CheckCreatePartition
  632. echo =======================检查分区情况 防止分区失败=======================
  633. echo.
  634. if not exist c: (echo 目标系统分区创建失败 请检查 任意键返回 & pause>nul & goto :StartDeploy)
  635. if not exist z: (echo 目标EFI分区创建失败 请检查 任意键返回 & pause>nul & goto :StartDeploy)

  636. :StartMountImg
  637. echo =======================挂载系统镜像=======================
  638. echo.
  639. imdisk -a -f %OSImageFile% -m T:
  640. if not exist T:\sources\install.wim (echo. & echo 系统镜像挂载失败 任意键退出 & pause>nul & exit) else (echo 系统镜像挂载成功)
  641. goto :eof

  642. :StartDepOS
  643. REM =======================开始灌装系统=======================
  644. REM 待根据前面设置优化
  645. Dism /Apply-Image /ImageFile:T:\sources\install.wim /Index:%OSIndex% /ApplyDir:C:\
  646. bcdboot C:\Windows /s Z: /f uefi /l zh-cn
  647. REM 无人值守自动安装系统
  648. md C:\Windows\Panther
  649. copy %UnattFile% C:\Windows\Panther\Unattend.xml /y
  650. REM WIN11 待增加 关闭 BitLocker功能 在oobe阶段 通过注册表 关闭
  651. if "%OSName:11=%"=="%OSName%" (echo * "不需要关闭BitLocker...") else (copy %OobeFile% C:\Windows\Panther\ /y)
  652. goto :eof


  653. :bierende
  654. REM 判断卷标OS分区的盘符,防止有的情况下磁盘盘符为非C盘
  655. for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where "VolumeName='OS'" get Name /Value') do set SysDrv=%%a
  656. dism /Apply-Image /ImageFile:%ISOPath%\install.wim /Index:%NUM% /ApplyDir:%SysDrv%\
  657. bcdboot %SysDrv%\Windows /l zh-cn /s %BootDrv% /f %OSMode%
  658. echo   --------------------------------------------------------
  659. Dism /Apply-Image /ImageFile:T:\sources\install.wim /Index:%OSIndex% /ApplyDir:%targetPartLetter%:\
  660. bcdboot %targetPartLetter%:\Windows /s %targetESPLetter%: /f uefi /l zh-cn
  661. echo   --------------------------------------------------------
  662. goto :eof

  663. :PreCopy
  664. REM =======================后续安装准备=======================
  665. echo.
  666. echo 软件目录: %DirCurrent%_DESKTOP
  667. xcopy %DirCurrent%_DESKTOP\* C:\Users\Public\desktop\必装软件\ /s/e/y
  668. echo "">>C:\Users\Public\desktop\请远离X卫士X管家
  669. copy %DirCurrent%_DESKTOP\PreInst.bat "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" /y
  670. goto :eof

  671. :rb
  672. REM =======================重启后继续装=======================
  673. echo 任意键重启电脑后继续安装
  674. shutdown -r -t 0
  675. exit
  676. goto :eof

  677. :hightlight
  678. REM -----------------------高亮显示文本-----------------------
  679. pushd "%temp%"
  680. >"%~2",set/p= <nul
  681. findstr /a:%~1 .* "%~2*"
  682. del "%~2"
  683. popd
  684. goto :eof
  685. echo -----------------------

  686. pause
  687. REM =======================高亮显示例子=======================
  688. call :hightlight 4a "这里是要显示的文本"
  689. echo.
复制代码
回复

使用道具 举报

41#
发表于 2025-1-2 01:17:32 | 只看该作者
批处理运行环境:
1 微PE 其他PE应该也可以,请自行测试
2 U盘目录结构
      DeployOS.cmd     -   上面批处理
      _Desktop            -    必要的软件,软件安装及优化批处理,其他必要文件
      _OS                    -    系统镜像及自动应答文件

大佬们看到,给点分,没发帖权限,后面还有几个脚本
回复

使用道具 举报

42#
发表于 2025-1-15 20:02:19 | 只看该作者
听说有万能驱动离线版,然后bat运行后自动安装。。然后搭配自应答文件
回复

使用道具 举报

43#
发表于 2025-1-16 21:43:37 | 只看该作者
感谢楼主的分享。
回复

使用道具 举报

44#
发表于 2025-1-17 13:23:55 | 只看该作者
有点难,继续学习来     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-16 22:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表