无忧启动论坛

标题: 能写一个GRUB4DOS 条件转向命令的简单例子吗? [打印本页]

作者: 2010rockze    时间: 2011-2-17 17:19
标题: 能写一个GRUB4DOS 条件转向命令的简单例子吗?
例如:我想检测到硬盘上存在一个指定文件的时候就执行相应的命令行吗?
作者: sratlf    时间: 2011-2-17 17:37
一根目录下file.txt文件为例

title test
if exist /file.txt echo file.txt found
echo file.txt not found
作者: 2010rockze    时间: 2011-2-18 12:54
谢谢啦!!

能不能支持多条命令啊?
这个例子只是单条命令的啊!!
作者: sratlf    时间: 2011-2-18 15:13
标题: 回复 #3 2010rockze 的帖子
那得你说具体要求。。。。
作者: 2010rockze    时间: 2011-2-18 16:58
我有两个问题:
问题1:

title test
if exist /file.txt echo file.txt found
echo file.txt not found

echo file.txt found 只是一条指令,如果我想执行多条呢?要怎么写?
例如我想条件正确的时候执行三条指令,不正确的时候执行5条指令,格式要怎么写?

问题2:
我找不到检测硬盘分区状态的相关资料,所以想问一问:
我想在硬盘里装两个系统,而且互不影响!
所以就分4个区,两个主分区,两个普通分区!(hd0,0)(hd0,1)(hd0,4)(hd0,5)
每个系统只使一个主分区和一个普通区!

GRUB4DOS菜单:

title 第一系统
先检测:(hd0,0)(hd0,4) 是否显示,如果没有则显示!
再检测:(hd0,1)(hd0,5) 是否隐藏,如果没有则隐藏!
引导:(hd0,0)的系统!

title 第二系统
先检测:(hd0,1)(hd0,5) 是否显示,如果没有则显示!
再检测:(hd0,0)(hd0,4) 是否隐藏,如果没有则隐藏!
引导:(hd0,1)的系统!

这样的菜单要怎样写啊?
作者: sratlf    时间: 2011-2-18 19:09
标题: 回复 #5 2010rockze 的帖子
不算很复杂

1.  多指令前提是保证中间执行不会出错,否则很难说会发生什么

title test
if exist /file.txt && echo 1 && echo 2 && echo 3 ! echo 1 && echo 2 && echo 3 && echo 4 && echo 5

2.

title 第一系统
checkrange 0x17 parttype (hd0,0) && unhide (hd0,0) && unhide (hd0,4)
hide (hd0,1) && hide (hd0,5)
root (hd0,0)
chainloader +1

title 第二系统
checkrange 0x17 parttype (hd0,1) && unhide (hd0,1) && unhide (hd0,5)
hide (hd0,0) && hide (hd0,4)
root (hd0,1)
chainloader +1
作者: 2010rockze    时间: 2011-2-18 20:06
谢谢啦!!!

0x17 代表的是隐藏区吧?不是隐藏区,用什么表示呢?
那里有 parttype 里的分区类型详细资料啊?
我想学习学习啊!!!
作者: sratlf    时间: 2011-2-18 20:17
标题: 回复 #7 2010rockze 的帖子
parttype 分区类型  具体可以见附件

一个简单的例子  普通ntfs分区(不管主还是扩展还是逻辑) 分区类型都是0x07

执行hide命令后 分区类型会被修改为 0x17  实现进入ms系统隐藏的目的

执行unhide命令会将分区类型还原为0x07

[ 本帖最后由 sratlf 于 2011-2-18 20:18 编辑 ]

分区类型.jpg (121.41 KB, 下载次数: 98)

分区类型.jpg

作者: 健佬    时间: 2011-2-18 23:01
又学多一个程例了。谢谢~
作者: 2010rockze    时间: 2011-2-19 09:08
终于成功啦!!谢谢啦!!!
GRUB真的很多功能啊!!




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