baby1277 发表于 2024-7-22 16:39:15

使用bcdedit把vhd添加到bcd 支持右键菜单操作

本帖最后由 baby1277 于 2026-4-26 16:35 编辑

         
还是搬出我的迷你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 path1=%%~fi
set path2=%path1: =%
set path3=%path2:(=%
if not "%path3%"=="%path1%" msg %username% /time:3 错误,路径不能存在空格和特殊符号。&&exit
for /f "delims=" %%i in ('echo %vhdpath%') do (
set vhdnpath2=%%~dpni
set vhdpath=%%~i
set vhdname=%%~ni
set vhdnx=%%~xi
if /i not "%%~xi"==".vhd" if /i not "%%~xi"==".vhdx" msg %username% /time:3 错误,不是VHD文件! && exit
)
:exit1
:: 判断固件类型
bcdedit /enum bootmgr |find /i "efi" && set exef=efi || set exef=exe
:: 添加休眠条目恢复项
for /f "tokens=2" %%i in ('bcdedit /create /d "%vhdname%" /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%" /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% -addfirst
bcdedit /default %id2%
msg %username% /time:5   添加 %vhdname% 引导菜单完成,重启后进入系统。




                                                                                                                         
修改bcd请慎重,可能会导致无法进入系统,请准备好启动U盘。

baby1277 发表于 2024-7-22 16:39:41

本帖最后由 baby1277 于 2024-10-3 23:14 编辑

不支持路径中有空格或者符号

baolizhu 发表于 2024-7-22 17:01:43

谢谢楼主分享,学习了。。。

baolizhu 发表于 2024-7-22 17:11:56

@echo off
cd /d %~dp0
reg add "HKCR\Windows.VhdFile\shell\VHD2BCD" /v "" /t REG_SZ /d "向BCD添加引导菜单(&B)" /f
reg add "HKCR\Windows.VhdFile\shell\VHD2BCD" /v "icon" /t REG_SZ /d "shell32.dll,8" /f
reg add "HKCR\Windows.VhdFile\shell\VHD2BCD\command" /ve /t REG_SZ /d "mshta vbscript:CreateObject(\"WScript.Shell\").Run(\"cmd /c set vhdpath=%%1 ^& call %SystemRoot%\VHD2BCD.bat\",0)(window.close)" /f
copy /y VHD2BCD.bat %SystemRoot%

1801403 发表于 2024-7-22 17:17:10

一套搞齐了。{:1_186:}

ddnflier 发表于 2024-7-22 17:26:00

学习了

chinaqq 发表于 2024-7-22 17:53:31

look look look

wenbieba 发表于 2024-7-22 18:14:41

添加到右键菜单方便多了,谢谢分享

robertkof 发表于 2024-7-22 18:27:07

谢谢楼主分享,学习了。。。

yyz2191958 发表于 2024-7-22 18:29:42

yyz2191958,如果您要查看本帖隐藏内容请回复

yc2428 发表于 2024-7-22 18:32:54

谢谢分享

2012huguoliang 发表于 2024-7-22 18:40:10

感谢老铁 看看 好用不

bilv 发表于 2024-7-22 18:50:18

JOINT 发表于 2024-7-22 19:54:39

谢谢分享

daixq021 发表于 2024-7-22 20:32:03

谢谢分享!收藏学习资料

2013Kents 发表于 2024-7-22 20:57:37

学习了

promrhxq 发表于 2024-7-22 21:23:49

感谢分享好东东

towlzj800801 发表于 2024-7-22 21:41:11

支持一下呗!

qq27722 发表于 2024-7-22 21:42:18

谢谢楼主分享,学习了

woaini 发表于 2024-7-22 22:06:15

感谢分享

freesoft00 发表于 2024-7-22 23:32:46

感谢提供

ly2389 发表于 2024-7-23 07:53:34

支持支持!!!!!!!!!!!!!!!

xiaoxinTAT 发表于 2024-7-23 08:04:15

感谢分享!!!

深深的沼泽 发表于 2024-7-23 11:00:55

很棒的批处理

2267981144 发表于 2024-7-23 11:57:49

多谢无私提供分享!

test2333 发表于 2024-7-23 12:34:59

右键直接添加到启动菜单确实方便,测试vhd系统的时候不需要再用bootice去手动添加引导项了{:1_186:}

kinyon 发表于 2024-7-23 12:51:15

这个不错,谢谢分享

乾坤大地 发表于 2024-7-23 13:52:45

乾坤大地 发表于 2024-7-23 13:53:02

本帖最后由 乾坤大地 于 2024-7-23 13:56 编辑

以下这个右键菜单也很方便http://bbs.wuyou.net/forum.php?mod=viewthread&tid=441358

进士小站 发表于 2024-7-23 14:15:05

感谢分享
下载了收藏
页: [1] 2 3 4 5 6
查看完整版本: 使用bcdedit把vhd添加到bcd 支持右键菜单操作