无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: sratlf

[教程] 2015_0209_更新,grub4dos帮助文档

    [复制链接]
发表于 2012-3-13 09:53:37 | 显示全部楼层
上面使用call相当于又扩展了,是否有错?
Snap1.jpg
回复

使用道具 举报

发表于 2012-3-13 11:04:41 | 显示全部楼层

回复 #272 zhaohj 的帖子

没发现什么问题啊。

可能你对批处理还不是很熟悉。
自己测试一下以下三个句子的区别也许就会明白了(在WINDOWS的CMD或GRUB4DOS命令行下测试)。

set a=
set a=b && set b=%a%
set a=
set a=b && set b=%a^%
set a=
set a=b && call set b=%a^%

需要注意的是:变量在一整句执行前就已经扩展了。除非开始新的环境,否则不会再次扩展变量。

而call命令的作用就相当于开启新的命令环境。

[ 本帖最后由 chenall 于 2012-3-13 11:07 编辑 ]
回复

使用道具 举报

发表于 2012-3-13 11:25:10 | 显示全部楼层
call命令还有这个作用,受教了。
回复

使用道具 举报

发表于 2012-3-13 19:42:32 | 显示全部楼层
多谢各位的解释,现在终于完全弄明白了。
回复

使用道具 举报

发表于 2012-3-13 20:19:17 | 显示全部楼层
对了,现在在批处理中使用call的跳转功能时,必须在标签前加上冒号(:),否则将执行call的调用内部或外部命令的功能。call还有调用内部函数的功能,语法如下:call Fn.函数调用号 参数
其中.可以用任意字符代替。据我测试,可以写成call Fn(函数调用号 参数) 的形式,最后一个)不起任何作用, 将被忽略掉,这样更加直观一些。突然发现call命令的功能好丰富啊!

[ 本帖最后由 dihuo0 于 2012-3-13 20:21 编辑 ]
回复

使用道具 举报

发表于 2012-3-14 15:11:52 | 显示全部楼层
关于COLOR的介绍,有一点需要修改。

改变菜单的颜色。注意,0.4.5版color命令在 VGA 图形模式下不起作用,只有在文本模式以及 VBE 图形模式下才起作用。

应该是:在VGA图形模式下带背景图片时不起作用(没有带背景图片时有效),现在不建议使用VGA图形模式,除非有必要。
回复

使用道具 举报

发表于 2012-3-14 15:13:36 | 显示全部楼层
command命令里面
注意:iso9660模式下区分文件名大小写!

新的版本已经不区分大小写了。
回复

使用道具 举报

发表于 2012-3-14 15:16:18 | 显示全部楼层
另外应该再增加一个编目,介绍命令语法。
回复

使用道具 举报

 楼主| 发表于 2012-3-14 15:24:52 | 显示全部楼层

回复 #279 chenall 的帖子

#277 #278已改

#279  命令语法是什么意思??
回复

使用道具 举报

发表于 2012-3-14 17:33:30 | 显示全部楼层
语法,其实是最重要的,如果不了解语法,就没有办法真正看懂和使用。

只要了解了基本的语法可以以不变应万变。

每个编程语言都有它的语法。具体要如何写这个介绍我暂时没有头绪。
回复

使用道具 举报

发表于 2012-3-15 10:20:00 | 显示全部楼层
原帖由 chenall 于 2012-3-14 15:11 发表
关于COLOR的介绍,有一点需要修改。

改变菜单的颜色。注意,0.4.5版color命令在 VGA 图形模式下不起作用,只有在文本模式以及 VBE 图形模式下才起作用。

应该是:在VGA图形模式下带背景图片时不起作用(没有带背景图片时有效),现在不建议使用VGA图形模式,除非有必要。

  


我印象中,原来的 color 命令确实对于旧的 graphics mode (即现在所说的 VGA 图形模式)无效,不管有没有背景图片。

原来的 color 命令只对于 text 文本模式有效。而在 graphics (VGA)模式下,只能使用 background 和 foreground 命令来改变字符的背景色和前景色。

也许后来把 color 命令改得能够在 VGA 模式下使用了?这个我不十分了解。

但既然 VGA 模式已经属于 “ 不推荐 ” 的模式了,那么这里的文档也可以不说那么详细。就是说,干脆说成 color 命令不支持 VGA 模式,也不算是错误。

顺便说一句,现在用 VBE 模式,完美实现 text 和 graphics 模式的统一。background 和 foreground 命令都不再需要了,一个 color 命令就适用于 text 和 VBE graphics 模式,有着 “ 简单之美 ”。

再补充一句。以前的 VGA 模式,有 n 多问题。lianjiang 就报告过,甚至在 640x480 的情况下都敢有 “ 花屏 ” 问题,导致无法使用。800x600 的 VGA 模式更是会出现死机。 现在,有了 VBE,那些问题都不复存在了。text 模式仍旧是不可少的,因为它兼容性最高。假如将来有人封杀 VBE 模式(或者部分地、定向地封杀,只是让 grub4dos 无法运转),那么,text 模式仍是 “ 救命稻草 ”。目前由于 grub4dos 的 VBE 模式的支持是在短期内突然、快速实现的,厂商还来不及反应,所以,还没有遭到封杀。但将来有可能遭到封杀(即我所说的 “ 定向封杀 ”,只让 grub4dos 死机)。各位,别说没提醒你。将来遇到封杀时,不要大惊小怪的。应该也是 “ 自然现象 ”。(别忘了,在时空论坛有一个帖子,是专门用来让大家 “ 互通消息、报告不支持 grub4dos 的硬件 ” 的。

既然谈到了封杀问题,就顺便也谈谈 VISTA 的 bootmgr 对 grub4dos 的影响吧。我个人认为,这仍旧是一次封杀行为(我的认识不代表别人的认识,大家是平等的。我没有带三个表,我只带一个表,我只代表我一个人)。在一开始,boot.ini 不存在了,于是在一个很长的时期内,网上很多人都在说,grldr 无法使用了。后来 bean 和其他几位高手研究出 bcdedit 的方法,来启动 grldr,这已经写在 lianjiang 的教程里了,也写到 grub4dos 的 readme 里面了。grldr 无法被直接加载,因为高手们发现被加载的文件有 64K 的限制,而 grldr 远远超过 64K。当时研究出来的办法是改用 grldr.mbr,因为它不超过 64K。再后来,又有高手发现,其实 bootmgr 仍旧支持 boot.ini,可以手动创建这个文件。但即使在 boot.ini 中,C:\grldr="..." 仍旧是无法启动的,必须改成 c:\grldr.mbr="..." 才可以。也许这不算什么大的封杀行为,但如果说这是一个小的封杀,应该会得到更多一些人的赞同。

[ 本帖最后由 不点 于 2012-3-15 11:29 编辑 ]
回复

使用道具 举报

发表于 2012-3-15 10:39:59 | 显示全部楼层

回复 #282 不点 的帖子

确实,旧版,color命令在非文本模式下不起作用,无论有无背景图片。后来也没有支持在VGA模式下使用。
回复

使用道具 举报

发表于 2012-3-15 15:05:08 | 显示全部楼层
去年11月份的版本就添加了color对VGA的支持的,我在处理VBE模式的时候已经顺便添加了。

VGA模式:
只要不加载背景图片,color命令就有效。如果加载了背影因为颜色代码已经被背景图片覆盖了所以失效。

[ 本帖最后由 chenall 于 2012-3-15 15:06 编辑 ]
回复

使用道具 举报

发表于 2012-3-16 13:43:54 | 显示全部楼层
不知道楼主什么时候在更新帮助,应用性的举例更多一点。最好把以前的版本的说明也整合在一起。
回复

使用道具 举报

发表于 2012-3-16 18:11:22 | 显示全部楼层
关于color的说明看的云里雾里,有些color后带英文的,有带数字的,也有待6位的一个码,到底有几种写法,有的写成0x1F这种的,等等,不一而足,而我看这个所谓的帮助文档,像是写给“不点”、chenall看似的,完全不能参考着使用。
回复

使用道具 举报

发表于 2012-3-16 19:46:15 | 显示全部楼层

回复 #286 zjzaog 的帖子

最新的直接用带数字的。。。

命令行下cho -h查看颜色代码就行了
回复

使用道具 举报

 楼主| 发表于 2012-3-16 19:54:31 | 显示全部楼层

回复 #286 zjzaog 的帖子

不知道你说的"不能参考着使用"是什么情况  我只能保证完全按照帮助文档所写的例子来用的话  有效果

至于这抄一部分命令  那抄一部分命令  除非给出详细的命令  否则谁都不知道会是什么效果
回复

使用道具 举报

发表于 2012-3-16 20:05:55 | 显示全部楼层
color标准的语法是
color NORMAL [HIGHLIGHT [HELPTEXT [HEADING]]]

除了第一个参数,后面的都是可选的。

四个参数分别指定了4种状态下的颜色。

每一个参数可以用FG/BF来指定前景色和背景色。

FG 和 BG 是颜色的名称,如下:black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(粉红),brown(棕), light-gray(亮灰),dark-gray(暗灰), light-blue(浅蓝), light-green(淡绿), light-cyan(淡青), light-red(明红), light-magenta(浅红), yellow(黄) 和 white(白)。注意,BG 的值只能是前八个。
另外,若想使用闪烁的前景色,在 FG 前使用前缀 "blink-" 即可。

所以标准的用法如下例子:

color green/black cyan/black

不过我自己在菜单中经常用数字代替。
color 0x42
0x42就是代表greed/black,具体为什么,这个涉及到显卡的显示原理。你只需要懂得基础的就够用了,其它的看不懂完全可以不用去理会,也许以后某一天你会明白了。
回复

使用道具 举报

发表于 2012-3-16 20:07:47 | 显示全部楼层
建议版主修改一下COLOR的命令介绍,只需要介绍基础的就行了,免得新手看得一头雾水。
回复

使用道具 举报

 楼主| 发表于 2012-3-16 20:13:30 | 显示全部楼层

回复 #290 chenall 的帖子

说实话  如果是教程的话我可以简单的写些介绍  文档类的还是想尽量准确  主要做参考用
回复

使用道具 举报

发表于 2012-3-16 23:29:51 | 显示全部楼层
原帖由 sratlf 于 2012-3-16 19:54 发表
不知道你说的"不能参考着使用"是什么情况  我只能保证完全按照帮助文档所写的例子来用的话  有效果

至于这抄一部分命令  那抄一部分命令  除非给出详细的命令  否则谁都不知道会是什么效果


不好意思,我说的太重了。
其实期待一个简明而全面的关于color的说明,比如最新的用法是color 后面带几个数字,可以系统的列出来……而不是让人自己去再找“另外的说明的文档”
回复

使用道具 举报

发表于 2012-3-16 23:33:23 | 显示全部楼层
下面是C大的grub4dos更新日志。。。
  1. 2011-11-29
  2. 1.BUG修正。
  3. 2.新的color命令语法。
  4.    color color_state=color [..]
  5. 其中color_state字符串可以如下。
  6.   normal  未选中菜单
  7.   highlight 选中菜单
  8.   helptext 菜单帮助信息
  9.   heading 菜单头(GRUB4DOS信息)
  10.   standard 默认色(控制台)
  11.   border  菜单边框VBE模式下有效果
  12. 3.新的setcolor/setcolorstate函数
复制代码


可以进入grub4dos命令行模式,输入echo -h获取颜色代码。。。

可以这样写
  1. color normal=0x0F highlight=0x0E helptext=0x0A heading=0x02 standard=0x02 border=0x77
复制代码
或者这样写
  1. color normal=0x0F
  2. color highlight=0x0E
  3. color helptext=0x0A
  4. color heading=0x02
  5. color standard=0x02
  6. color border=0x77
复制代码

[ 本帖最后由 zhs1997 于 2012-3-16 23:37 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-3-16 23:59:27 | 显示全部楼层
原帖由 zjzaog 于 2012-3-16 23:29 发表


不好意思,我说的太重了。
其实期待一个简明而全面的关于color的说明,比如最新的用法是color 后面带几个数字,可以系统的列出来……而不是让人自己去再找“另外的说明的文档”



我只能贴图说话了。。。

color.png
回复

使用道具 举报

发表于 2012-3-17 11:53:36 | 显示全部楼层
看来我需要把问题说的清楚一点,免得以为我是在乱问,不会随便复制点东西给我看就打发了事,好像我都没有查过似的。

color normal=0x0F highlight=0x0E helptext=0x0A heading=0x02 standard=0x02 border=0x77

color normal=33 highlight=12 helptext=333 heading=44 standard=2

color 12 13 14 15

color normal=0x121212
color highlight=0xEE0000
color helptext=0x515151
color heading=0x848484
color standard=0xAEEEEE
color border=0x66CD00

以上各组写法到底都是什么意思?现在最合适的是用哪一种?另外,能不能说明为什么有这么多的表达式,却没有统一的说明,另外color normal=33 highlight=12 helptext=333 heading=44 standard=2这一组表达方式在vbe里面可以让背景上面没有横条,这是什么原理。还有,到底你们是倾向于使用一种。还是你们自己也在琢磨的使用??我算是一个寻根究底到让人烦的人,不好意思




[ 本帖最后由 zjzaog 于 2012-3-17 12:03 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-3-17 12:27:43 | 显示全部楼层

回复 #295 zjzaog 的帖子

已经猜到是写法混了  所以我才说只用帮助文档的写法

这几个写法命令格式一样  只有颜色的表示值有差别  算是历史遗留问题  不同时期用的不同写法  很混乱

目前最新的还是建议用十六进制表示  统一格式

color normal=33 highlight=12 helptext=333 heading=44 standard=2这一组表达方式在vbe里面可以让背景上面没有横条


意思明白  文档里也有写  可能表述不太一样

color.png
回复

使用道具 举报

发表于 2012-3-17 13:44:30 | 显示全部楼层
“我一般建议使用两位数的颜色代码,因为会自动转换为64位供VBE使用,这样就可以在控制台、VGA、VBE模式下都获得一样的显示效果(可能会有一点点偏差)。

如果>0xff的只设置VBE模式颜色。

另外关于: 11 12 13 14
可以这样看11=0xB 12=0xC
也就是只设置前景色。”

请您可以过目一下c大的建议,我想问一下,“0x0F”这种编码与“13”等等这种两位数的编码方式的转换关系

[ 本帖最后由 zjzaog 于 2012-3-17 13:45 编辑 ]
回复

使用道具 举报

发表于 2012-3-17 13:48:21 | 显示全部楼层

回复 #297 zjzaog 的帖子

一个是十六进制换算,一个是十进制换算。。。

感觉用十六进制换算比较方便,因为echo -h显示的是十六进制的数值。。。

前面都加上0x就是了,否则你要换算回十进制数值
回复

使用道具 举报

 楼主| 发表于 2012-3-17 13:50:26 | 显示全部楼层

回复 #297 zjzaog 的帖子

两位数的颜色代码


就是echo -h得到的颜色表里的值

0x0F是15  0x0D才是13  就是简单的将数值从16进制转成10进制
回复

使用道具 举报

发表于 2012-3-17 13:57:24 | 显示全部楼层

回复 #299 sratlf 的帖子

哈哈 还是建议用户将echo -h显示的数值前面都加上0x比较好啊。。。
回复

使用道具 举报

 楼主| 发表于 2012-3-17 14:03:13 | 显示全部楼层

回复 #300 zhs509 的帖子

已经写上了  echo 命令介绍 -h 参数的时候就写了  实际使用需加上0x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 21:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表