无忧启动论坛

标题: 请帮忙解释下grub4dos菜单意思 [打印本页]

作者: vrboxing    时间: 2022-12-19 11:49
标题: 请帮忙解释下grub4dos菜单意思
本帖最后由 vrboxing 于 2022-12-19 19:02 编辑

bfgxp老大的windows安装序列看到的菜单,看不懂,哪位能帮忙解释一下,多谢!
iftitle [find --ignore-floppies --ignore-cd /vhdos/win10x64/ins.lst && if 2 >= 3 ! find --ignore-floppies --ignore-cd /vhdos/win10x64/win10_CHILD.vhd] Windows 10 x64\n 启动Win10x64(VHD)系统
作者: bfgxp    时间: 2022-12-19 13:17
本人来回答
条件菜单
目的,如果存在ins.lst这个文件则不显示该菜单,如果不存在ins.lst 则继续查找CHILD.vhd文件,存在则显示该菜单

ps:你拼错了我的id
作者: vrboxing    时间: 2022-12-19 18:56
bfgxp 发表于 2022-12-19 13:17
本人来回答
条件菜单
目的,如果存在ins.lst这个文件则不显示该菜单,如果不存在ins.lst 则继续查找CHILD ...

抱歉,抱歉
多谢老大解惑!
作者: vrboxing    时间: 2022-12-19 19:01
操作符 && 和 || 和 !
&& 的用法:
command1 && command2
如果 command1 返回 真,那么 command2 将执行
! 的说法(要求至少有一个&& 或 ||联合使用)
相当于else的功能。
if command1 && command2 ! command3
如果 command1 返回 真 ,就执行command2 ,否则执行command3
if command1 || command2 ! command3
如果command1返回 假 ,就执行command2 ,否则执行command3
(通常嵌套使用)
这个和介绍的哪个都对不上,特别是这句&& if 2 >= 3 ! 我实在不能理解
作者: 527104427    时间: 2022-12-19 19:08
vrboxing 发表于 2022-12-19 19:01
操作符 && 和 || 和 !
&& 的用法:
command1 && command2

&& if 2 >= 3 !  是一个不执行的命令,因为条件为假,可以换成 && echo -n ! 或直接换成 ||

作者: vrboxing    时间: 2022-12-19 19:20
527104427 发表于 2022-12-19 19:08
&& if 2 >= 3 !  是一个不执行的命令,因为条件为假,可以换成 && echo -n ! 或直接换成 ||

多谢
iftitle [find --ignore-floppies --ignore-cd /vhdos/win10x64/ins.lst ||  find --ignore-floppies --ignore-cd /vhdos/win10x64/win10_CHILD.vhd] Windows 10 x64\n 启动Win10x64(VHD)系统

改写成这样是不是等效?
作者: 527104427    时间: 2022-12-19 20:27
vrboxing 发表于 2022-12-19 19:20
多谢
iftitle [find --ignore-floppies --ignore-cd /vhdos/win10x64/ins.lst ||  find --igno ...


作者: vrboxing    时间: 2022-12-19 20:32
527104427 发表于 2022-12-19 20:27


作者: bfgxp    时间: 2022-12-20 10:24
527104427 发表于 2022-12-19 19:08
&& if 2 >= 3 !  是一个不执行的命令,因为条件为假,可以换成 && echo -n ! 或直接换成 ||

当ins.lst存在时,我是想给iftitle 返回假,让这条菜单不显示,所以用到这个看似无法理解的if 2 >= 3
虽然看起来莫名其妙,但确实与我想要的效果一致
作者: Climbing    时间: 2022-12-20 10:44
厉害,学到了新东西。
作者: 2011yaya2007777    时间: 2022-12-20 11:12
6#不等效。达不到bfgxp想要的效果。不如试一试这样:不使用查找命令,使用如果不存在ins.lst,并且存在win10_CHILD.vhd。具体的英文命令记不清了,你们自己查一查吧。
作者: 527104427    时间: 2022-12-20 11:46
bfgxp 发表于 2022-12-20 10:24
当ins.lst存在时,我是想给iftitle 返回假,让这条菜单不显示,所以用到这个看似无法理解的if 2 >= 3
虽 ...

哦,看来 iftitle 的语法是真奇怪,逻辑跟脚本菜单完全不一样
作者: 2011yaya2007777    时间: 2022-12-20 11:54
不奇怪吧。6#的语法是如果查到ins.lst或者win10_CHILD.vhd为真。条件菜单则显示菜单,脚本则执行后续命令。
作者: bfgxp    时间: 2022-12-20 12:50
527104427 发表于 2022-12-20 11:46
哦,看来 iftitle 的语法是真奇怪,逻辑跟脚本菜单完全不一样

我的理解是iftitle只管[]中返回的是真还是假,真则显示菜单,假则不显示菜单
所以为了在ins.lst存在时给iftitle返回一个假,就写成了那个情况,如果g4d有布尔值的话,就简单了,直接用False替换if2>=3

或者换个理解方式,当ins.lst存在时这个iftitle相当于是这样写的 iftitle[if 2>=3],明显2>=3不成立,所以菜单不显示
作者: bfgxp    时间: 2022-12-20 12:53
说实话,我当时写出来时也觉得很别扭,但确实达到了需求
作者: 2011yaya2007777    时间: 2022-12-20 13:14
理解正确。g4d有判断语句:如果存在;如果不存在。具体看if的帮助信息。
作者: 527104427    时间: 2022-12-20 13:17
2011yaya2007777 发表于 2022-12-20 13:14
理解正确。g4d有判断语句:如果存在;如果不存在。具体看if的帮助信息。

估计是脑子中病毒了,开始有点没搞懂,现在明白了
作者: bfgxp    时间: 2022-12-20 13:39
527104427 发表于 2022-12-20 13:17
估计是脑子中病毒了,开始有点没搞懂,现在明白了

呵呵,感染后第八天,目前就是咳嗽,嗅觉完全丢失,还有就是全身轻飘飘的。
作者: 527104427    时间: 2022-12-20 14:18
bfgxp 发表于 2022-12-20 13:39
呵呵,感染后第八天,目前就是咳嗽,嗅觉完全丢失,还有就是全身轻飘飘的。

我第二天,已经出门开工了,苦逼
作者: 2011yaya2007777    时间: 2022-12-20 14:21
iftitle [if NOT exist  /vhdos/win10x64/ins.lst && if exist /vhdos/win10x64/win10_CHILD.vhd] Windows 10 x64\n 启动Win10x64(VHD)系统
作者: 假大空    时间: 2022-12-20 18:53
学习了。条件菜单应用还是很方便,不用手动频繁修改title
作者: vrboxing    时间: 2022-12-20 22:02
2011yaya2007777 发表于 2022-12-20 14:21
iftitle  Windows 10 x64\n 启动Win10x64(VHD)系统

这个条理清晰,脑子不会痛
作者: 2011whp    时间: 2022-12-21 13:16
条件菜单 只有 逻辑真 才显示

其它的 不显示 :http://bbs.wuyou.net/forum.php?m ... &fromuid=413782

可以 在 菜单全局处 写批处理 综合成一个变量,然后  iftitle [ if %val% == ok ]
作者: nowayer    时间: 2023-12-4 01:22
提示: 作者被禁止或删除 内容自动屏蔽




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