|  | 
 
| 本帖最后由 baby1277 于 2024-12-24 22:51 编辑 
 
 还是搬出我的迷你PC,前后修改了几次,终于在不同系统不同固件上测试通过。
 
 以下是批处理的代码,粘贴出来供大家参考,如有改进的地方可以跟帖反馈。
 
 
 复制代码@echo off
:: 右键菜单支持
if defined vhdpath goto vhdFilesok
:: 拖拽操作支持
set vhdpath=%~1
if defined vhdpath goto vhdFilesok
:: 常规批处理窗口输入
set /p vhdpath=请输入VHD文件完整路径后按回车键,PS:提示可以将VHD文件拖拽进来 :
:: 检测路径错误
for /f "delims=" %%i in ('echo %vhdpath%') do if not exist "%%~i" msg %username% /time:3 输入错误文件不存在! && exit
:: 去掉路径的引号,记录文件夹名,并判断文件后缀名。
: vhdFilesok
for /f "delims=" %%i in ('echo %vhdpath%') do set vhdname=%%~ni && set vhdpath=%%~i && if /i not "%%~xi"==".vhd" if /i not "%%~xi"==".vhdx" msg %username% /time:3 错误,不是VHD文件! && exit
:: 判断固件类型
bcdedit /enum bootmgr |find /i "efi" && set exef=efi || set exef=exe
:: 添加休眠条目恢复项
for /f "tokens=2" %%i in ('bcdedit /create /d "%vhdname%_VHD" /application resume') do set id1=%%i
bcdedit /set %id1% device vhd=[%vhdpath:~0,2%]%vhdpath:~2%
bcdedit /set %id1% path \windows\system32\winresume.%exef%
bcdedit /set %id1% locale zh-cn
bcdedit /set %id1% inherit {resumeloadersettings}
bcdedit /set %id1% isolatedcontext Yes
bcdedit /set %id1% allowedinmemorysettings 0x15000075
bcdedit /set %id1% filepath \hiberfil.sys
bcdedit /set %id1% bootmenupolicy Standard
:: 添加操作系统条目
for /f "tokens=2" %%i in ('bcdedit /create /d "%vhdname%_VHD" /application osloader') do set id2=%%i
bcdedit /set %id2% device vhd=[%vhdpath:~0,2%]%vhdpath:~2%
bcdedit /set %id2% osdevice vhd=[%vhdpath:~0,2%]%vhdpath:~2%
bcdedit /set %id2% path \Windows\System32\winload.%exef%
bcdedit /set %id2% systemroot \Windows
bcdedit /set %id2% Locale zh-cn
bcdedit /set %id2% inherit {bootloadersettings}
bcdedit /set %id2% isolatedcontext Yes
bcdedit /set %id2% allowedinmemorysettings 0x15000075
bcdedit /set %id2% nx OptIn
bcdedit /set %id2% bootmenupolicy Standard
bcdedit /set %id2% resumeobject %id1%
:: 将引导菜单放置最后
bcdedit /displayorder %id2% -addlast
msg %username% /time:3   添加%vhdname%_VHD引导菜单完成
 
 
   修改bcd请慎重,可能会导致无法进入系统,请准备好启动U盘。
 
 
  vhd添加bcd.rar
(62.31 KB, 下载次数: 295) | 
 评分
查看全部评分
 |