无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
781#
发表于 2011-4-25 15:48:00 | 只看该作者

回复 #784 zhaohj 的帖子

这个地址貌似不是固定的?

[ 本帖最后由 zxw 于 2011-4-25 15:53 编辑 ]
回复

使用道具 举报

782#
发表于 2011-4-25 16:03:35 | 只看该作者
这个位置不是固定的...

@zxw
嘿嘿,发现下面的这个用法很有意思.
command | echo -n | echo -n | echo -n | set command1=
这个用法,很容易被人误解^_^.不明白的人会以为echo有这样的功能呢.

不建议直接取内存地址(因为可能不固定)
可以用规范的语句来获取比如上面的方法或
command | set command1=
set command1=%command1:~22%

也可以输出到内存中再截取比如:
command > (md)0x300+1
cat --skip=22 (md)0x300+1 | set command1=

总之有很多方法,其实并不难获取.

另外,最后执行命令的“返回值”在内存0x4cb00处,更新记录里面有说明.当然了我猜也许你想要的是得到字串符的结果,这个太麻烦.
回复

使用道具 举报

783#
发表于 2011-4-25 16:15:28 | 只看该作者

回复 #786 chenall 的帖子

嘿嘿,不好意思,你猜到了,就是要这个字符串。
方法多,就是有点拐弯卖角。
想来点直接痛快的,呵。

呵,那个用法是容易让人误解。
回复

使用道具 举报

784#
发表于 2011-4-26 02:11:15 | 只看该作者
2011-04-25@156
        1.新增两个内置变量@root,@path.
          @root 当前的root.(带路径的).比如 root (hd0,0)/boot 这时的@root是(hd0,0)/boot
          @path 当前默认外部命令查找路径.
        2.修正一个可能导致程序出错的问题.(使用到了临时变量的内存).
                   这个问题在批处理中使用configfile时可能碰到.
        3.批处理代码功能增强.
其它说明:
1.新的版本%~d0已经统一使用(hdx,y)/(fdx)之类的友好格式.

2.另外在批处理中使用%~dpx之类的参数时,如果该参数没有磁盘/路径信息则自动使用批处理文件所在的磁盘/路径信息.(之前的版本,是使用当前root的磁盘和"/"的路径)

3.完善了%~dp参数的提取.支持默认路径.
比如一个批处理文件放在(hd0,0)/boot/grub/下,
文件名是test.bat,并且默认的路径也是(hd0,0)/boot/grub

直接使用test.bat启动这个批处理时,里面的%~dp0将会是(hd0,0)/boot/grub
%0还是test.bat

[ 本帖最后由 chenall 于 2011-4-26 10:23 编辑 ]
回复

使用道具 举报

785#
 楼主| 发表于 2011-4-26 08:49:35 | 只看该作者
这次改动还是挺大的,做个记号!

@root变量值后面是否应该加“/”?
如 root (hd0,4)/aaaa/
@root应该得到(hd0,4)/aaaa/
回复

使用道具 举报

786#
发表于 2011-4-26 09:15:34 | 只看该作者

回复 #788 chenall 的帖子

呵,c大真棒!我梦想改进的地方都一一实现了。
%~d0还是test.bat

笔误?
回复

使用道具 举报

787#
发表于 2011-4-26 10:26:52 | 只看该作者
@zhaohj

root (hd0,4)/aaa 或 root (hd0,4)/aaa/ 都是一样的,最终的结果都是root (hd0,4)/aaa

@zxw
写错了,嘿嘿
回复

使用道具 举报

788#
发表于 2011-4-26 15:56:28 | 只看该作者
@chenall大:
建议这个也处理一下。如图t2的值。


[ 本帖最后由 zxw 于 2011-4-26 16:27 编辑 ]
回复

使用道具 举报

789#
发表于 2011-4-26 16:27:05 | 只看该作者
这个等以后再说,需要想办法优化调整一下获取参数的代码,否则实现起来比较麻烦,浪费许多代码.

像获取@root,@path之类的就比较简单了,只需要两三行代码就可以.

目前的%~dpx获取到的也不一定是正确的,自己使用小心就行了.
比如
文件test.bat放在当前root下面.

直接执行test.bat获取到的%~dp0就会不对,因为这种情况是处理成使用默认的command path

解决办法就是对于当前root下的文件执行时多加一个''/'',/test.bat这样就行了.

以后有更好的方案再进行改进吧.

[ 本帖最后由 chenall 于 2011-4-26 16:31 编辑 ]
回复

使用道具 举报

790#
 楼主| 发表于 2011-4-26 17:38:53 | 只看该作者
相对目录,目前还不成熟,不建议使用。
“/”在dos下是根,当前目录下是“.”;而在grub中“/”是相对root而言的,有待改进。

或者command隐含首先支持/,即当前目录下最优先执行。

=============
C大请关注一下这个帖子:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=192388&page=1#pid2215482

utf-8格式的菜单,可能好多命令无效。

[ 本帖最后由 zhaohj 于 2011-4-26 18:02 编辑 ]
回复

使用道具 举报

791#
发表于 2011-4-27 00:20:37 | 只看该作者

回复 #793 chenall 的帖子

呵, 不急,慢慢来。
另,新版configfile在批处理中还是有问题,之前的版本可以这样用。
说明:在一定的条件下,configfile需要被call调用,下图最简单化反馈新版问题。


[ 本帖最后由 zxw 于 2011-4-27 00:56 编辑 ]
回复

使用道具 举报

792#
发表于 2011-4-27 00:57:55 | 只看该作者
明白了,明天再修改,

先试下这个看看是否正常了.

[ 本帖最后由 chenall 于 2011-4-27 17:00 编辑 ]
回复

使用道具 举报

793#
发表于 2011-4-27 09:03:53 | 只看该作者
wee有什么办法隐藏菜单,或说不显示。
把时间设置为0,有的机器慢点还是会有个显示。
回复

使用道具 举报

794#
发表于 2011-4-27 09:37:18 | 只看该作者

回复 #796 chenall 的帖子

是否传错?还是一样的错误。
回复

使用道具 举报

795#
发表于 2011-4-27 17:01:37 | 只看该作者
OK,已经上传,麻烦测试一下是否还有其它问题..

@yjd
好像没有什么好的办法.

可以试试我的方法,WEE菜单第一行直接启动系统或者GRUB4DOS.通过GRUB4DOS来控制菜单.
回复

使用道具 举报

796#
发表于 2011-4-27 17:22:15 | 只看该作者
@yjd
好像没有什么好的办法.

可以试试我的方法,WEE菜单第一行直接启动系统或者GRUB4DOS.通过GRUB4DOS来控制菜单.

好的我试试,谢谢!
回复

使用道具 举报

797#
发表于 2011-4-27 17:27:25 | 只看该作者

回复 #799 chenall 的帖子

初步测试正常。...
回复

使用道具 举报

798#
发表于 2011-4-28 14:17:21 | 只看该作者
@chenall :
建议交换磁盘系列后,启动设备的磁盘信息作相应调整。
如(hd0)、(hd1)交换前,0x8280值为0x80;交换后,0x8280值应调整为0x81.

[ 本帖最后由 zxw 于 2011-4-28 14:28 编辑 ]
回复

使用道具 举报

799#
发表于 2011-4-28 17:11:18 | 只看该作者
我觉得这个应该由用户自己去控制.

你只考虑到了交换,
万一是覆盖了map /xxxx.img (hd0)之类的,当如何处理?

又假如是取消映射呢map (hd0) (hd0) / map --unmap之类,又当如何处理.

我觉得有些复杂了,如果不能很好的处理,还是保留现状.
回复

使用道具 举报

800#
发表于 2011-4-28 17:14:25 | 只看该作者
嗯,还是c大想得周全。看来鱼与熊掌不能兼得。
回复

使用道具 举报

801#
发表于 2011-4-29 10:30:19 | 只看该作者
@chenall :
内置变量@root还有bug,多了一个前置空格。


[ 本帖最后由 zxw 于 2011-4-30 02:37 编辑 ]
回复

使用道具 举报

802#
发表于 2011-4-29 11:22:41 | 只看该作者
下个版本再修改一下。。
回复

使用道具 举报

803#
 楼主| 发表于 2011-4-29 11:37:20 | 只看该作者
好像正常啊...............

Snap1.jpg (22.32 KB, 下载次数: 106)

Snap1.jpg
回复

使用道具 举报

804#
发表于 2011-4-29 11:42:02 | 只看该作者

回复 #807 zhaohj 的帖子

加双引号,问题就出来了。貌似@root的值有前置空格。

[ 本帖最后由 zxw 于 2011-4-29 11:46 编辑 ]
回复

使用道具 举报

805#
 楼主| 发表于 2011-4-29 11:56:34 | 只看该作者
原帖由 zxw 于 2011-4-29 11:42 发表
加双引号,问题就出来了。貌似@root的值有前置空格。


加双引号,看到了。
PXE与你的有不同点

Snap1.jpg (15.61 KB, 下载次数: 108)

Snap1.jpg
回复

使用道具 举报

806#
发表于 2011-4-30 02:09:52 | 只看该作者
@chenall :
新版@root的问题是解决了,但还有一点小问题。

               

不知算bug否?

想了一下,既算bug,也可不算。这样就算获取批处理自身路径的另类形式。请忽略。

[ 本帖最后由 zxw 于 2011-4-30 02:35 编辑 ]
回复

使用道具 举报

807#
发表于 2011-4-30 18:02:42 | 只看该作者
嗯,发现了另外一个BUG,晚上再抽空修改一下..
回复

使用道具 举报

808#
发表于 2011-4-30 22:07:49 | 只看该作者
已经更新.

1.取消前面版本对批处理参数的调整.恢复到04-16版.(有点得不偿失,以后有更好的方案再处理)
2.修正一个BUG.(函数print_root_device).
3.批处理参数新增%~f 文件全路径,%~z文件大小.
4.现在批处理脚本可以使用使用errorcheck命令控制是否检测错误(默认错误就退出).
回复

使用道具 举报

809#
发表于 2011-5-1 01:47:33 | 只看该作者
新版引入了bug,见图,a2的值?



再跟踪了一下,路径作为参数传递时有bug
   

[ 本帖最后由 zxw 于 2011-5-1 02:24 编辑 ]
回复

使用道具 举报

810#
发表于 2011-5-1 13:54:40 | 只看该作者
谢谢报告,是由于""引起的,
不小心被吃了一个引号.^_^.

等晚上才能修改上传了.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-5 21:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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