|
原帖由 dihuo0 于 2012-3-12 12:51 发表
多谢版主的更新,这次更新关于条件菜单(iftitle)的内容解决了我的一个大问题,但是我还是有一些疑问:
在条件菜单(iftitle)中,设置(set)变量时为什么使用call set?
使用变量时为什么使用^阻止变量扩展,但是结果是变量被实时扩展了?
据我的测试,在条件菜单(iftitle)中,变量名不得超过8个字符,不知道还有没有其他限制?
用 call set 是为了能把结果传递出来
条件判断的时候无论有什么操作 在判断结束后都会还原 比如当前root为(cd)
iftitle [find --set-root --devices=h /bootmgr && call set bootmgr=%@root^%] load BOOTMGR ...
如果在(hd0,0)上找到了/bootmgr文件 即使有 find --set-root 命令设置新的root为(hd0,0) 判断结束后root依然是(cd)
加^是为了防止@root在最开始就被扩展 应该在找到/bootmgr以后再进行扩展 将bootmgr所在分区传递给变量bootmgr
目前grub4dos中的所有变量名最大长度就是8个字符 可以看下set命令部分 |
|