EFI shell 是否足够灵活以循环引导条目?

Is the EFI shell flexible enough to loop over boot entries?

我正在尝试编写一个 EFI shell 脚本来删除所有引导条目(如 bcfg dump boot 中给出),但不知道有多少提前存在。

该语言提供了一个循环结构,模仿了 Microsoft 的 shells:

for var in <set>
   ...
endfor

...但我不清楚是否有合理的方法将引导条目的数字标识符从 bcfg dump 获取到 <set>

此时(UEFI Shell v2.1 和 UEFI v2.50)无法使用 UEFI Shell 解析 bcfg 输出。

UEFI Shell 脚本中唯一支持的解析方法是使用 parse 命令,它需要 Standard-Format Output(似乎是 CSV)。不幸的是,只有 7 个命令可以通过使用 -sfo 标志作为参数来生成 SFO。支持的命令有:lsmapmemmapdatedhdevicesdrivers.

可以通过编写模仿 bcfg behavior. I managed to do that and sample code can be found here 的简单 C 应用程序来删除所有启动选项。

请注意,在某些情况下,删除所有启动选项可能很危险,并可能导致硬件处于不可恢复的状态。确保你知道自己在做什么。