无忧启动论坛

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

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

    [复制链接]
1#
发表于 2011-1-22 16:26:59 | 显示全部楼层
支持版主的工作,我觉得应该介绍一些常用的命令。。

另外就是要多一些例子。

评分

参与人数 1无忧币 +1 收起 理由
ddw_xx001 + 1 www.52ea.com通天剑主

查看全部评分

回复

使用道具 举报

2#
发表于 2011-1-26 10:42:43 | 显示全部楼层
新版GRUB4DOS上传。

SET/IF 命令的帮助已经更新。
回复

使用道具 举报

3#
发表于 2011-1-26 12:44:48 | 显示全部楼层
嗯,
if exist 只是简单的用open函数测试一下该文件是否能打开,如果可以的话就返回真,否则返回假。
回复

使用道具 举报

4#
发表于 2011-2-13 11:41:22 | 显示全部楼层
与批处理中goto命令的差别是,使用 goto 命令转到 LABLE 标签执行后将不再返回原处向下执行。

这一句应该改一下...
与call命令的差别是,使用 goto 命令直接转换 LABLE 标签处执行不会返回原处。

注意: GRUB4DOS的CALL和GOTO是和批处理一样的机制.

另外CALC中

=前面如果是一个非数字字符串,则会把计算结果赋值给变量;

这个说法也有误...以上说法只有在set /a 的情况下才有效


关于command

新版本中外部命令默认位置已经改成了(bd)/BOOT/GRUB/
查找外部命令的顺序如下..

如果是以'(' 或'/' 开头的FILE认为是一个绝对路径的文件.直接打开.
否则
1.先查找用INSMOD加载的命令.
2.使用默认位置里面的同名文件.
3.使用当前root下的同名文件.

[ 本帖最后由 chenall 于 2011-2-13 11:54 编辑 ]
回复

使用道具 举报

5#
发表于 2011-3-8 19:14:25 | 显示全部楼层
看了一下,没有发现什么大问题.

checktime
用法: checktime min hour dom month dow
描述:

不带参数的checktime
输出当前时间
带参数的checktime可以使得某些命令只有在某一时间段内才执行。

命令格式如下:

checktime * * * * *

checktime后面的五个参数分别表示分钟,小时,日期,月份和星期几。*表示全范围,你也可以使用数字,用-表示某一范围,用/表示每隔一定数字取一个值,具体的用法可以查看一下crontab的语法。例子:

1-4
2,5-6
1-2,4-5,7
*/2

checktime本身只是一个测试函数,它判断当前时间是否符合参数的指定。但把它和&&相结合,你就可以使得某些命令只有在一定的条件下才会执行,例如:

上午使用第一项作为缺省项,下午使用第二项
checktime * 0-12 * * * && default 0
checktime * 13-23 * * * && default 1


更多用法
http://bbs.znpc.net/viewthread.php?tid=4591&extra=page%3D2


另外关于clear的介绍.

另类用法: 在菜单中生成一行不可被选中的"空行"。

并非clear才会有这样的效果,只要该菜单项目中没有启动敏感的命令都会使得菜单不可选择


hiddenmenu

  3.按键代码如果不清楚可以使用上面的功能来获取。

要改成可以使用pause --test-key来获取



uuid命令部份
find --set-root uuid () 7f95820f-5e33-4e6c-8f50-0760bf06d79c
要实现上面的功能
只需要使用以下命令就可以了.
uuid 7f95820f-5e33-4e6c-8f50-0760bf06d79c

另外,也许应该多介绍一下 && 和 ||

这两个符号也是一个很强大的功能,利用不同的命令组合可以实现多种用途.

操作符 ' && ' and ' || ' and ' ! '
'!'的说法
好像是手误...

另外"!"要求至少有一个&& 或 ||.

command1 ! command2
如果 command1 返回 假,那么 ! 后的 command2 将执行

好像说法不是很贴确

这个"!"应该说是相当于else的功能
if command1 && command2 ! command3
如果 command1 返回真就执行command2 否则执行command3

if command1 || command2 ! command3
如果command1返回假就执行command2 否则执行command3

[ 本帖最后由 chenall 于 2011-3-8 19:17 编辑 ]
回复

使用道具 举报

6#
发表于 2011-3-8 19:54:59 | 显示全部楼层
原帖由 xiaoy 于 2011-3-8 19:33 发表
教程非常好 ,好好学习哦

根贴问一下 checktime的用法 ,如果是PXE启动,可否以服务器时钟为准来判断 ,因为在一些公用机房中客户机时间老是错误


使用是的本地的时间.
回复

使用道具 举报

7#
发表于 2012-3-13 08:24:40 | 显示全部楼层
这一句我来解释一下吧
iftitle [find --set-root --devices=h /bootmgr && call set bootmgr=%@root^%] load BOOTMGR ...

要理解为什么要^而不是直接set bootmgr=%@root%

首先,因为一整行的命令属于一个整体在运行之前里面的变量就会被扩展开了。

如果直接用set bootmgr=%@root%

那在运行set bootmgr=%@root%之前这个变量就已经解释过一次了得到的是整行命令未运行之前的结果。

经常写WINDOWS批处理的同学就比较容易明白,因为和批处理机制是一样的。
回复

使用道具 举报

8#
发表于 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 编辑 ]
回复

使用道具 举报

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

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

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

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

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

使用道具 举报

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

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

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

使用道具 举报

14#
发表于 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,具体为什么,这个涉及到显卡的显示原理。你只需要懂得基础的就够用了,其它的看不懂完全可以不用去理会,也许以后某一天你会明白了。
回复

使用道具 举报

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

使用道具 举报

16#
发表于 2015-2-26 16:21:54 | 显示全部楼层
本帖最后由 chenall 于 2015-2-26 16:28 编辑
不点 发表于 2015-2-23 09:34
0000:830C  1字节           控制要使用的i ...


是我写错了,应该是4不是2

这个我觉得可以保留,因为在某些特殊情况下可强制使用iso9660标准格式来访问,得到不同的内容.

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 03:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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