我试图编写一个EFI shell脚本来删除所有引导条目(如bcfg dump boot
中所示),而不知道有多少引导时间存在。
该语言提供了一个循环结构,从Microsoft的shell中模式化:
for var in <set>
...
endfor
...但我不清楚是否有合理的方法可以将bcfg dump
的引导条目的数字标识符转换为<set>
。
答案 0 :(得分:3)
目前(UEFI Shell v2.1和UEFI v2.50)无法使用UEFI Shell解析bcfg
输出。
在UEFI Shell脚本中唯一支持的解析方法是使用parse
命令,该命令需要Standard-Format Output
(它似乎是CSV)。不幸的是,通过使用SFO
标志作为参数,只有7个命令可以生成-sfo
。支持的命令包括:ls
,map
,memmap
,date
,dh
,devices
,drivers
。
通过编写模仿bcfg行为的简单C应用程序,可以实现删除所有引导选项。我设法做到了,可以找到示例代码here。
请注意,在某些情况下删除所有引导选项可能会很危险,并且可能导致硬件无法恢复。确保你知道自己在做什么。