无忧启动论坛

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

[已解决] 请教GRUB4DOS的两个问题

[复制链接]
跳转到指定楼层
1#
发表于 2013-12-5 11:47:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qj_tzy 于 2013-12-5 15:22 编辑

请教GRUB4DOS的两个问题

1.把(hd-1)的值赋给某个内存变量,并保存在一个文件中
若有两个硬盘、且插入U盘的硬盘下,(hd)的值应为(hd3),(hd-1)的值应为(hd2),想把(hd-1)的值(hd2)赋给一个内存变量,并保存在一个文件中,GRUB4DOS的命令如何写,如:

set dsk_no=(hd-1)  ?
echo %dsk_no% > dsk_no.flg

2.用一个grub4dos批命令启动一个iso文件,其批命令如下:

!BAT
set /l isoname=%1
#接受menu.lst传给批命令的iso文件名称,如win7pe.iso,该文件在/boot/img_bin/目录下

set pathimg=/boot/img_bin/
pause --wait=0 Please Wait....
map --mem %pathimg%%isoname% (0xFF)
map --hook
chainloader (0xFF)

:eof
exit

但该批命令把串%pathimg%%isoname%显示为/boot/img_bin/isoname%,即两个变量以%分隔排在一起时,后面一个变量的值未替换出来,该如何处理,才能得到想要的结果
2#
发表于 2013-12-5 12:56:03 | 只看该作者
1,
  1. calc *0x475&0xff || echo no disk
  2. calc %@retval%-1
  3. echo (hd%@retval%) > dsk_no.flg
复制代码


2,批处理下连续两个%%会处理为一个%  所以改成下面这样就行了

map --mem %pathimg%%%isoname% (0xff)

点评

谢谢,但我对下段没理解,在您编写的grub4dos新版本帮忙文档中,我好像没找到相关说明,能否解释一下: 01.calc *0x475&0xff 02.calc %@retval%-1 03.echo (hd%@retval%)  详情 回复 发表于 2013-12-5 13:25
回复

使用道具 举报

3#
 楼主| 发表于 2013-12-5 13:25:36 | 只看该作者

谢谢,但我对下段没理解,在您编写的grub4dos新版本帮忙文档中,我好像没找到相关说明,能否解释一下:
01.calc *0x475&0xff

02.calc %@retval%-1

03.echo (hd%@retval%)

点评

第一句是获取硬盘数量 0x475处值的最后两位就是 第二句是确定最后一块硬盘的值 第三句就是输出结果 比如两块硬盘的 第一行命令会得到2 第二行命令得到1 那hd-1就是hd1  详情 回复 发表于 2013-12-5 14:48
回复

使用道具 举报

4#
发表于 2013-12-5 14:48:19 | 只看该作者
qj_tzy 发表于 2013-12-5 13:25
谢谢,但我对下段没理解,在您编写的grub4dos新版本帮忙文档中,我好像没找到相关说明,能否解释一下:
...

第一句是获取硬盘数量  0x475处值的最后两位就是  第二句是确定最后一块硬盘的值   第三句就是输出结果

比如两块硬盘的  第一行命令会得到2  第二行命令得到1  那hd-1就是hd1
回复

使用道具 举报

5#
 楼主| 发表于 2013-12-5 15:22:43 | 只看该作者
谢谢,在您的指导下,此问题已解决!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-14 01:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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