无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 9801|回复: 31

[分享] 快速安装VHD系统的批处理

  [复制链接]
发表于 2025-2-24 22:05:39 | 显示全部楼层 |阅读模式
本帖最后由 baby1277 于 2025-3-5 14:03 编辑

帮助新手快速安装VHD系统,傻瓜式操作比WinNTSetup更简单。

不需要掌握系统启动和VHD系统相关知识,支持Win7-Win11 32位和64位系统。

只需将系统映像文件拖进来按回车键,把所有繁琐的步骤交给批处理来完成。

简单的测试下没有发现问题,若有问题或者建议跟帖留言。


  1. @echo off
  2. title (快速安装VHD系统 By baby1277 2025.3.5)
  3. :: 拖拽操作支持
  4. set wim=%~1
  5. if defined wim goto wimok
  6. :vhdset
  7. cls&echo.
  8. if defined cuo echo.&echo 安装遇到了问题,不支持的系统映像。&echo.
  9. echo 请将Wim或者Esd映像文件拖拽进来后按回车键
  10. echo.
  11. set /p wim=
  12. :wimok
  13. :: 检查映像文件路径正确性
  14. for /f "delims=" %%i in ('echo %wim%') do (
  15. if /i not "%%~xi"==".wim" if /i not "%%~xi"==".esd" goto vhdset
  16. if not exist "%%~fi" goto vhdset
  17. set wim2=%%~fi
  18. set wimN=%%~ni
  19. )
  20. :: 判断映像文件的系统版本来设置VHD磁盘格式
  21. for /f "tokens=2-4" %%i in ('dism /get-wiminfo /wimfile:"%wim2%"^|find "名称"') do (
  22. if %%j equ 7 set nx=.vhd&goto nxok
  23. if %%j equ 8 set nx=.vhdx&goto nxok
  24. if %%j equ 8.1 set nx=.vhdx&goto nxok
  25. if %%j equ 10 set nx=.vhdx&goto nxok
  26. if %%j equ 11 set nx=.vhdx&goto nxok
  27. echo %%i%%j%%k|find /i "win7">nul&&set nx=.vhd&goto nxok
  28. echo %%i%%j%%k|find /i "windows7">nul&&set nx=.vhd&goto nxok
  29. for %%a in (8 8.1 10 11) do echo "%%i%%j%%k"|find /i "win%%a">nul&&set nx=.vhdx&goto nxok
  30. for %%b in (8 8.1 10 11) do echo "%%i%%j%%k"|find /i "windows%%b">nul&&set nx=.vhdx&goto nxok
  31. )
  32. echo "%wimN%"|find /i "win7">nul&&set nx=.vhd&goto nxok
  33. echo "%wimN%"|find /i "windows7">nul&&set nx=.vhd&goto nxok
  34. for %%i in (8 8.1 10 11) do echo "%wimN%"|find /i "win%%i">nul&&set nx=.vhdx&goto nxok
  35. for %%i in (8 8.1 10 11) do echo "%wimN%"|find /i "windows%%i">nul&&set nx=.vhdx
  36. :nxok
  37. if not defined nx set cuo=0&goto vhdset
  38. :: 设置VHD文件位置
  39. set "vhdPath=%~d0\WinVHD_%random:~-2%%nx%"
  40. :: 获取Wim/Esd映像文件索引
  41. for /f "tokens=1-4" %%i in ('dism /get-wiminfo /wimfile:"%wim2%"') do (
  42. if "%%i"=="索引:" set mod=%%j
  43. if /i "%%l"=="Ultimate" set ver2=旗舰版&goto ver1
  44. if /i "%%l"=="Enterprise" set ver2=企业版&goto ver1
  45. if "%%l"=="企业版" set ver2=企业版&goto ver1
  46. if /i "%%l"=="lot" set ver2=lot企业版&goto ver1
  47. if "%nx%"==".vhdx" if /i "%%l"=="Pro" set ver2=专业版&goto ver1
  48. if "%nx%"==".vhdx" if /i "%%l"=="Professional" set ver2=专业版&goto ver1
  49. if "%nx%"==".vhdx" if "%%l"=="专业版" set ver2=专业版&goto ver1
  50. )
  51. :ver1
  52. if not defined mod set cuo=0&goto vhdset
  53. :: 设置VHD磁盘卷标
  54. set vhdname=WindowsVHD
  55. :: 设置VHD文件大小
  56. set vhdSize=60
  57. set /a vhdSize2=vhdSize*1024
  58. :: 显示Wim/Esd文件系统版本和索引
  59. echo.&echo 映像:%wim2%  支持安装VHD系统的版本&echo.
  60. setlocal enabledelayedexpansion
  61. for /f "skip=4 delims=" %%i in ('dism /get-wiminfo /wimfile:"%wim2%"^|find /i /v "home"^|find /v "家庭"') do (
  62. for /f "delims=" %%a in ('echo %%i^|find "索引"') do set mod3=%%a
  63. for /f "delims=" %%b in ('echo %%i^|find "名称"') do set mod4=%%b
  64. if defined mod4 if "%nx%"==".vhd" echo !mod4!|find /i "pro">nul&&set mod4=
  65. if defined mod4 if "%nx%"==".vhd" echo !mod4!|find "专业版">nul&&set mod4=
  66. if defined mod4 echo !mod3!    !mod4!&set mod3=&set mod4=
  67. )
  68. setlocal disabledelayedexpansion
  69. :: 显示VHD系统安装参数
  70. echo.&echo =================VHD系统参数=================
  71. echo.
  72. echo VHD磁盘卷标:%vhdname%
  73. echo.
  74. echo VHD文件位置:%vhdPath%
  75. echo.
  76. echo VHD文件大小:%vhdSize% GB
  77. echo.
  78. echo Wim/Esd位置:%wim2%
  79. echo.
  80. echo Wim/Esd索引:%mod%  %ver2%
  81. echo.
  82. echo 请确认以上VHD参数没有问题可以直接按回车键继续
  83. echo.
  84. set /p mod2=如需要安装其他版本则输入对应索引号按回车键继续:
  85. if defined mod2 set mod=%mod2%
  86. :: 创建并加载VHD磁盘
  87. for %%i in (R S T U V W Y Z) do if not exist %%i: set pan=%%i
  88. (echo create vdisk file="%vhdPath%" maximum=%vhdSize2% type=expandable&^
  89. echo Select vdisk file="%vhdPath%"&^
  90. echo attach vdisk&^
  91. echo create partition primary&^
  92. echo format quick fs=ntfs label="%vhdname%"&^
  93. echo assign letter=%pan%:&^
  94. echo exit)|diskpart
  95. :: 应用系统镜像到VHD磁盘
  96. dism /apply-image /imagefile:"%wim2%" /index:%mod% /applydir:%pan%:\
  97. :: 配置引导记录
  98. bcdboot %pan%:\Windows /l zh-ch
  99. if %errorlevel% equ 0 set vhdSetup=ok
  100. if not defined vhdSetup goto cuo2
  101. :: 安装成功设置引导程序
  102. bcdedit /timeout 3
  103. bcdedit /set {bootmgr} Locale zh-cn
  104. :: 部署自动应答文件
  105. set yinda=%pan%:\Windows\Panther\unattend.xml
  106. if exist %yinda% goto cuo2
  107. md %pan%:\Windows\Panther
  108. if exist %pan%:\Windows\Syswow64 (set sysbit=amd64) else set sysbit=x86
  109. echo ^<?xml version='1.0' encoding='utf-8'?^>>%yinda%
  110. echo ^<unattend xmlns="urn:schemas-microsoft-com:unattend"^>>>%yinda%
  111. echo     ^<settings pass="oobeSystem"^>>>%yinda%
  112. echo         ^<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="%sysbit%" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"^>>>%yinda%
  113. echo             ^<AutoLogon^>>>%yinda%
  114. echo                 ^<Enabled^>true^</Enabled^>>>%yinda%
  115. echo                 ^<Username^>Administrator^</Username^>>>%yinda%
  116. echo             ^</AutoLogon^>>>%yinda%
  117. echo             ^<OOBE^>>>%yinda%
  118. echo                 ^<SkipMachineOOBE^>true^</SkipMachineOOBE^>>>%yinda%
  119. echo             ^</OOBE^>>>%yinda%
  120. echo         ^</component^>>>%yinda%
  121. echo     ^</settings^>>>%yinda%
  122. echo ^</unattend^>>>%yinda%
  123. :: 安装失败返回
  124. :cuo2
  125. (echo select vdisk file="%vhdPath%"&echo detach vdisk)|diskpart
  126. if defined vhdSetup Shutdown -r -f -t 0&exit
  127. del /f /q "%wim2%"
  128. set cuo=0&goto vhdset
复制代码

vhd.png

快速安装VHD系统20250305.zip (2.27 KB, 下载次数: 177)
 楼主| 发表于 2025-2-24 22:05:40 | 显示全部楼层
本帖最后由 baby1277 于 2025-3-3 13:42 编辑

系统自带的dism命令工具,感觉很拉胯。
低版本不兼容高版本 (Win7PE装不上Win10)
高版本也不兼容低版本 (Win10PE装不上Win7)
安装失败请更换安装环境,建议在Win8系统环境上安装,Win7-W11都可以安装。
回复

使用道具 举报

 楼主| 发表于 2025-2-27 22:07:21 | 显示全部楼层
oym2016 发表于 2025-2-27 20:10
索引: 1
名称: Windows 11 IoT 企业版 LTSC
描述: Windows 11 IoT 企业版 LTSC

是考虑不足,一般这种映像 索引只有1    ver2值读错了也没有关系。
回复

使用道具 举报

 楼主| 发表于 2025-3-4 11:42:49 | 显示全部楼层
2013ertert 发表于 2025-3-4 11:05
感谢分享 是不是 在PE环境下 双击 就可以了


本地磁盘系统和VHD系统上都可以使用,不用特意在PE系统使用。
双击运行按提示操作既可
回复

使用道具 举报

 楼主| 发表于 2025-6-12 10:22:12 | 显示全部楼层
feige001 发表于 2025-6-12 08:31
请教下,我的时gpt uefi 引导的win11,为什么安装winxp 和win7 的vhd总是到重启进不了系统?

xp就不要想,xp时代uefi都还没有出来。
uefi出来的时候Win7都快停止更新了,所以对uefi的支持兼容性有点差。
我记得Win7要完美的支持uefi需要打上一个更新补丁,你去IT天空看下这篇帖子。
https://www.itsk.com/thread/427491

或者用第三方引导  XORBOOT 和 GRUB4DOS 都可以启动,只是第三方启动需要拥有
很强的动手能力,比如离线打驱动,编写引导菜单就劝退大多数的网友。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-11-3 14:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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