##判断启动方式,设置变量
if %@uefi%#==# && set bt=BIOS && set ph=/boot ! set bt=EFI_x%@uefi% && set ph=/efi
## EFI启动时加载截图模块,按左Ctrl+左Alt+F12截图,图片以8位数字.png的形式保存在第一个找到的FAT16/FAT32分区。
if %bt%==EFI_x64 load -n /EFI/tool/CrScreenshotDxe.efi
##定位WINDOWS系统分区,如果存在多个WINDOWS系统分区,只定位首先找到的分区!可改为设定查找定位文件来确定。
if "%@boot%"=="(pd)" || find --set-root /windows | set win=
set uefi-v=1
if "%@boot%"=="(pd)" && echo --uefi-v | set uefi_v=
##计算物理硬盘数,检查是否存在GPT分区的硬盘
rootnoverify (hd-1)
set /a hdn=*0x82a0&0xff-127
find checkrange 0xEE parttype && set pt="警告:存在GPT类型的硬盘!!!" ! set pt=""
if "%@boot%"=="(pd)" && set bt=PXE_V_%uefi_v:~15,5% && set hdn=未知 && set pt=""
root %@boot%
if "%@boot%"=="(pd)" && set http
set root2==%@root%
if not %root2%==%@boot% && echo "启动分区与目前根分区不一致,将查找启动分区并设置为根分区!!!" && pause --wait=5
find --set-root /boot/hk22.hex
##热键设置(在字库加载后运行,会出错? error:not enough space!)
%ph%/ext/hotkey -A [F4] commandline
%ph%/ext/hotkey -A [F3] reboot
##设置热键颜色
setmenu --hotkey-color=0xffff00
##PXE启动错误提示,服务器G4D启动文件使用内置菜单或其他外置菜单。
if "%@boot%"=="(pd)" && if %@uefi%#==# && echo "错误:PXE启动,服务器端启动文件为EFI,客户端为BIOS,10秒后关闭客户端" && pause --wait=10 && halt
##根据启动方式不同,设置启动文件参数。
if %@uefi%#==# && set mn1="/bootmgr" ! set mn1="/microsoft/boot/bootmgfw.efi"
title 用BCD启动 WINDOWS 和 WINPE\n用BCD启动硬盘上的 WINDOWS 系统和 WINPE
##用延时为30的bcd30文件覆盖bcd文件,显示带PE启动项的多启动项菜单。
##bcd设置中启动文件留空,BIOS和EFI通用。
if %@uefi%#==# && dd if=%@root%/bcd/bcd30 of=%@root%/boot/bcd ! dd if=%@root%/bcd/bcd30 of=%@root%/efi/microsoft/boot/bcd
chainloader %ph%%mn1:~1,-1%
boot
title 用NTBOOT启动 WINDOWS\n BCD出问题时用此菜单
if %@uefi%#==# && map /boot/ext/ntboot.iso (0xff)
if %@uefi%#==# && map --rehook
if %@uefi%#==# && set mn2="(0xff)/NTBOOT NT6=%win%" ! set mn2="/efi/ext/ntboot %win%/win"
%mn2:~1,-1%
boot
title 用RUN、ntloader、wimboot启动WIM格式WIN10PE-X64\n BCD出问题时用此菜单启动WIN10PE(/boot/boot.WIM)
##用RUN启动WIM格式PE
#%ph%/ext/RUN /boot/boot.wim