You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在EFI Shell中对比两个文件内容?需修正脚本判断逻辑

在EFI Shell中对比文件内容的正确方法

嘿,我明白你想通过对比两个文件来判断PCI设备信息是否匹配,然后执行不同的操作。你原来脚本里的if lan.txt == lan-ref.txt确实行不通,因为EFI Shell的if命令不支持直接用这种方式对比文件内容——它只能处理变量或者简单的数值/字符串条件,没法直接解析文件。

不过别担心,EFI Shell自带了专门的文件对比工具comp,我们可以用它来实现你的需求。下面是修改后的正确脚本:

echo -off
fs0:
pci 05 00 00 -s 0 > lan.txt
# 对比两个文件,将输出丢弃,只关注返回值
comp lan.txt lan-ref.txt > nul
# 根据comp的返回值判断:返回0表示文件相同,非0表示不同/文件不存在
if errorlevel 1 then
    echo "LAN not found"
else
    reset
endif

关键知识点解释:

  • comp是EFI Shell内置的文件对比命令,它会逐字节对比两个文件的内容:
    • 如果文件完全相同,comp会返回0的错误码
    • 如果文件内容不同、或者其中某个文件不存在,comp会返回1或更高的错误码
  • > nul是把comp的输出(比如差异提示)重定向到空设备,避免多余的输出干扰脚本逻辑
  • if errorlevel N的语法表示“如果上一个命令的错误码大于等于N”,所以我们用if errorlevel 1来捕获所有“文件不同”的情况

这样修改后,脚本就能正确判断两个文件的内容是否一致,从而执行对应的reset或者提示操作啦。

内容的提问来源于stack exchange,提问作者Andrei Nacu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 06:47:54