无忧启动论坛

标题: 用UltraISO做BIOS与EFI双启光盘 [打印本页]

作者: hhh333    时间: 2021-5-7 10:49
标题: 用UltraISO做BIOS与EFI双启光盘
本帖最后由 hhh333 于 2021-9-2 06:05 编辑

经过查阅资料,UltraISO从9.71版本以后,可以通过按Ctrl+alt+I来插入EFI启动文件,又经过咨询,这个功能不支持命令行添加。可不可以通过界面操作来达成呢?经测试是可行的,现共享给大家。
  1. @echo off
  2. rem 本程序使用isodir来定义打包的目录,可以拖放打包目录进行打包
  3. rem 如果未指定打包目录,则使用本文件所在位置的上两级作打包目录
  4. rem 打包目录本身及路径均不能带空格,否则可能出现不可预计的结果
  5. rem 生成的ISO与该文件夹位于同一目录下,文件名为打包目录的目录名
  6. rem 启动文件位置的定义约定使用相对于打包目录的相对路径。
  7. set r=-preparer http://bbs.wuyou.net -publisher H3
  8. For /F "tokens=1" %%i In ('DATE /T') do SET d=%%i
  9. color 3f
  10. PUSHD %~dp0
  11. if not "%1"=="" goto Get_isodir
  12. SET TP=%cd%
  13. cd ..\..
  14. set isodir=%cd%
  15. cd %TP%
  16. call :Get_isoname %isodir%
  17. goto start
  18. :Get_isodir
  19. set isodir=%1
  20. set isoname=%~n1%

  21. :start
  22. set biosfile=BOOT\ISOLINUX.BIN
  23. set efifile=EFI\efisys.bin
  24. ultraiso.exe -jlong -l -imax -optimize %r% -boot %isodir%\%biosfile% -volu %isoname% -out %isodir%\..\%isoname%.ISO
  25. cls
  26. color 4f
  27. echo 注意:
  28. Echo.
  29. echo 下面进行UltraIso的界面按键操作,请保持程序为当前窗口并等待窗口关闭……
  30. Echo.
  31. start ultraiso.exe %isodir%\..\%isoname%.ISO
  32. nircmd.exe clipboard set %isodir%\%efifile%
  33. echo 开始添加EFI启动文件……
  34. nircmd.exe wait 1000
  35. nircmd.exe sendkeypress ctrl+alt+i
  36. nircmd.exe wait 1000
  37. nircmd.exe sendkeypress ctrl+v enter
  38. echo 开始保存ISO文件……
  39. nircmd.exe wait 1000
  40. nircmd.exe sendkeypress ctrl+s
  41. echo 退出UltraISO操作界面……
  42. nircmd.exe wait 1500
  43. nircmd.exe closeprocess ultraiso.exe
  44. echo 开始打包,请稍候……
  45. ultraiso -in %isodir%\..\%isoname%.ISO -d "%isodir%"
  46. goto end

  47. :Get_isoname
  48. set isoname=%~n1%
  49. goto :eof

  50. :END
  51. echo 操作全部完成!请按任意键退出……
  52. pause>nul
复制代码
其关键是用了一个小工具nircmd.exe来达成按键的目的。大致的逻辑是:
1、定义格式,加上BIOS启动,用ultraiso命令行产生一个小的模板ISO;
2、启动ultraiso图形界面打开模板ISO,通过nircmd.exe发送按键操作UI,加上EFI启动信息,再关闭图形界面;
3、再用命令行把要打包的文件加入进去。


注:经过与开发者沟通,最新版9.7.6.3829已经支持命令行加-secondboot来直接添加EFI启动项,因此以上可以直接加,不必再启动界面:
ultraiso.exe -jlong -l -imax -optimize %r% -boot %isodir%\%biosfile% -secondboot %isodir%\%efifile% -volu %isoname% -out %isodir%\..\%isoname%.ISO -d "%isodir%"



作者: zlq_hysy    时间: 2021-5-7 11:12
沙发,下载代码研究一下
作者: 一剑穿古今    时间: 2021-5-7 12:05

作者: seawaycao    时间: 2021-5-7 12:18
谢谢老大的热心分享!受教了!
作者: sanshen3    时间: 2021-5-7 12:43
不错学习一下
作者: 2011slkj    时间: 2021-5-7 15:06
学习了
作者: 新空气    时间: 2021-5-7 16:30
学习学习
作者: 027sun    时间: 2021-5-7 20:30
谢谢热心分享!学习了
作者: 2012chenyuwen    时间: 2021-5-11 16:32
H大,麻烦问一下,小工具nircmd.exe从何处来?谢谢!
作者: hhh333    时间: 2021-5-11 16:51
2012chenyuwen 发表于 2021-5-11 16:32
H大,麻烦问一下,小工具nircmd.exe从何处来?谢谢!

http://www.nirsoft.net/utils/index.html
作者: plusv    时间: 2021-5-11 16:52
2012chenyuwen 发表于 2021-5-11 16:32
H大,麻烦问一下,小工具nircmd.exe从何处来?谢谢!

https://www.nirsoft.net/utils/nircmd.html
作者: 3008086    时间: 2021-5-11 17:45
谢谢楼主分享经验。
作者: wuming520    时间: 2021-5-11 19:39
楼主可以总结一下小白使用方法吗
作者: yisheng1312    时间: 2021-5-15 15:55

不错学习一下
作者: sounydqb    时间: 2021-5-16 17:20
学习了谢谢分享
作者: 2012chenyuwen    时间: 2021-5-17 07:44
plusv 发表于 2021-5-11 16:52
https://www.nirsoft.net/utils/nircmd.html

感谢指点!
作者: 2012chenyuwen    时间: 2021-5-17 07:46
hhh333 发表于 2021-5-11 16:51
http://www.nirsoft.net/utils/index.html

谢谢H大!
作者: devilma    时间: 2021-6-7 20:58
谢谢H大,,,辛苦啦
作者: mazrmc1    时间: 2021-6-8 15:39
这个历害,先收藏了,慢慢学习!
作者: kingjord    时间: 2021-7-29 12:16
学习了
作者: hhh333    时间: 2021-9-2 06:06
新版已经直接支持命令行了
作者: leitian72853    时间: 2022-5-23 12:23
谢谢分享
作者: 15159050498    时间: 2022-5-23 13:32
厉害,学习学习
作者: 481416322    时间: 2022-5-23 13:52
厉害,学习学习
作者: 761898068    时间: 2022-10-24 21:42
谢谢楼主分享!
作者: baosheng00    时间: 2022-10-27 22:43
支持,方便写程序的人收藏
作者: yuyan    时间: 2022-11-7 14:44
谢谢分享,学习学习
作者: 2012luomaisi    时间: 2022-11-7 18:06
下载代码研究一下
作者: ak009    时间: 2022-12-6 16:10
研究下
作者: 2012myjoys    时间: 2022-12-6 16:49
看起来很厉害的样子




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3