无忧启动论坛

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

[分享] [20150128]自动列表·自动菜单·数字启动

    [复制链接]
301#
发表于 2011-1-13 10:09:56 | 只看该作者

回复 #297 zxw 的帖子

run /xyly.iso这样调用对吧,可是执行后出现的是“load ramdisk imges......",这是典型的从磁盘直接加载的现象,这个语句执行的是前半部分,不是后半部分,如果是后半部分应该是[0M/29M],使用会向内在读入数据,读完后才会出现"load ramdisk imges....",我查看了你11日前的老版,代码是这样的:map %2 %~pnx1 (0xff) || map --mem %~pnx1 (0xff),调用时可以这样写run /xyly.iso --mem,启动后就是[0M/29M],我在发给你的#295中的附件中就是修改后的,你可以测试一下,只是在%~pnx1 前加了个%2,其他没有任改动。你不是用U盘测试的?这个写法用非UD启动的话是可以的,但用UD启动的话速度会很慢的,如果是前者,我启动29M的ISO要12分钟,而后者1分05秒就启动完毕。
 这个后置参数是我在研究S大的RUN后,无意间发现你的11日版前的RUN也可以这样调用,所以又从S大的RUN换回了你的RUN,但11日版测试发现没有了这样参数,就参照以前的试着加了这个,经测试没有发现异常,就使用了,12日版我也加了这样参数。
 以下是我菜单的部分:
pxe detect
timeout 15
default 9
gfxmenu (ud)/menu/main
configfile (ud)/menu.lst

title >【1】运行Ghost快速装系统
RUN /BOOT/IMGS/XYLY.IMG

title >【2】运行杏雨梨云03 PE网络版
RUN /BOOT/IMGS/XYLY.ISO --mem
title >【3】运行XP-PE全内置维护版
RUN /UDDIY/WinBaiCaiXpPE.iso --mem

title >【4】运行0PE之xp中文版v1.2.4
configfile (ud)/BOOT/GRUB/MENU.0PE
使用正常。
  
回复

使用道具 举报

302#
 楼主| 发表于 2011-1-13 10:13:35 | 只看该作者
哦,如果是这样调用的话,你可以自行加上。或者下版一并考虑。

[ 本帖最后由 zxw 于 2011-1-13 10:14 编辑 ]
回复

使用道具 举报

303#
发表于 2011-1-13 10:15:12 | 只看该作者
补充一下,
command --set-path=(ud)/BOOT/GRUB/
insmod (ud)/BOOT/GRUB/WENV
这两句我放在GRLDR的内置菜单中,外置菜单没有加载这两句。上楼的是外置菜单的部分。
回复

使用道具 举报

304#
 楼主| 发表于 2011-1-13 10:24:17 | 只看该作者

回复 #303 幸运的草 的帖子

WENV用的什么版本?或者先将insmod (ud)/BOOT/GRUB/WENV屏蔽再测试一下
回复

使用道具 举报

305#
发表于 2011-1-13 11:32:13 | 只看该作者

回复 #304 zxw 的帖子

12日版就是屏蔽wenv后测试的,确实是找不到可见区,简易测试器及实机都是如此,11日版用的是按你要求下载的C大的原版,就你1楼放出的那个。GRLDR的版本都是按你要求的版本。
 对啦,我给你的11日的RUN还有一个地方我修改过,那就是.input段按M后返回菜单的那一句,原句是返回GRLDR内置菜单,我修改为按M后返回UD区根目录下的MENU.LST菜单。因为内置菜单我加了一个加速器,如果反回内置菜单的话会重复加载加速器引起死机。
 刚刚在不同的机子上测试,发现一个问题,目前S大的RUN和你的各版本的RUN都有的一个共同问题就是:用U盘UD区启动,ISO是放在UD区,加载FIRADISK驱动后,简易测试器中测试没有问题,但实机测试却在加载完驱动后找不到ISO,但加载加速器后却能找到并正常向内存加载,完成后会提示按I键从ISO启动,而我的机按I键后死机。注:我手头的几台机子不能用加速器。
 这个问题在前面的帖子中已经和S大讨论过了,现在才发现使用加速器能找到,不用加速器却找不到。
回复

使用道具 举报

306#
发表于 2011-1-13 11:59:33 | 只看该作者
出现一个奇怪的事情:

title [5]  自动生成菜单式列表
RUN

执行第一次报找不到文件,执行第二次顺利进入 /BOOT/IMGS/文件夹文件列表。
回复

使用道具 举报

307#
 楼主| 发表于 2011-1-13 12:04:05 | 只看该作者

回复 #306 Plantsoot 的帖子

  1. title [5]  自动生成菜单式列表
  2. command --set-path=/yourrunpath/  #/yourrunpath/为run所在路径
  3. RUN
复制代码
如上修改试试

[ 本帖最后由 zxw 于 2011-1-13 14:35 编辑 ]
回复

使用道具 举报

308#
发表于 2011-1-13 12:46:47 | 只看该作者
title  input path for input number(use /BOOT/IMGS/ as default)
WENV set wiso=$u,$input,please input a path(/BOOT/IMGS/ as default):
WENV get wiso || WENV set wiso=/BOOT/IMGS/ && echo Now use /BOOT/IMGS/ as default.
RUNz %wiso%
configfile (md)0x3000+0x10

象上面这样,默认路径时出来数字菜单, f 数字 正常,如果输入路径如:/iso/ 后出来数字菜单,这时: f 数字 就提示没有找到文件!

经测试,问题依旧哦!其实,只要加一个判断:如果当前目录没有firadisk.img,就去/boot/imgs/下找,如果还没有找到就去run所在目录找,如果还没有就提示没有找到firadisk.img ,转去出错处理!
另外:加了firadisk.img 将出现 按“I”从iso启动,否则 。。。。,其实,大多数时候希望从iso启动,所以最好是默认从iso启动。

[ 本帖最后由 h99h99 于 2011-1-13 12:51 编辑 ]
回复

使用道具 举报

309#
 楼主| 发表于 2011-1-13 15:06:50 | 只看该作者
以上大部分问题均与ud有关,忽视了ud内的目录是虚拟的,不能find定位。下版改进。

[ 本帖最后由 zxw 于 2011-1-13 15:33 编辑 ]
回复

使用道具 举报

310#
发表于 2011-1-13 16:24:19 | 只看该作者
原帖由 zxw 于 2011-1-13 15:06 发表
以上大部分问题均与ud有关,忽视了ud内的目录是虚拟的,不能find定位。下版改进。


恩,确实是这个问题。我现在的解决办法是 RUN (ud)/BOOT/IMGS/
我本来想自己修改的,但是有两行代码看不太明白:

ls %path:~,-1%
if #%~nx1==#
回复

使用道具 举报

311#
 楼主| 发表于 2011-1-13 16:39:45 | 只看该作者

回复 #310 Plantsoot 的帖子

如,%path%为/boot/imgs/
%path:~,-1%则为/boot/imgs。
ls %path:~,-1% :判断当前该目录是否存在。#当然可以直接用:ls %path%;二者的区别你测试一下就知道了。
if #%~nx1==# :判断%~nx1是否存在。
===================================
%~d0        扩展%0到磁盘号.例如:(hd0,0),默认是()。
%~p0        扩展%0到一个路径。
%~n0        扩展%0到一个文件名.
%~x0        扩展%0到一个文件扩展名。

另:find 支持目录和文件,而ud区内的所谓目录实际上是文件名的一部分,即为“虚拟目录”,故find %path:~,-1%语句在ud情形无效。

[ 本帖最后由 zxw 于 2011-1-13 16:52 编辑 ]
回复

使用道具 举报

312#
发表于 2011-1-13 17:24:44 | 只看该作者

回复 #311 zxw 的帖子

恩。学习了。
我做了个简单的测试:

test

  1. !BAT
  2. debug off
  3. terminal console
  4. checkrange 20110111:-1 read 0x8278 || echo Err.version && exit 1
  5. delmod -l %~nx0 || insmod %~0
  6. set runs=%~nx0
  7. echo -e --------------------
  8. echo -e %~1
  9. echo -e --------------------
  10. echo -e %~d1
  11. echo -e --------------------
  12. echo -e %~p1
  13. echo -e --------------------
  14. echo -e %~n1
  15. echo -e --------------------
  16. echo -e %~x1
  17. echo -e --------------------
  18. if /i "%~1"=="%~dpnx1" set path=%~p1
  19. if /i "%~1"=="%~pnx1" set path=%~p1
  20. echo -e %path:~,-1%
  21. echo -e --------------------
  22. echo -e %path%
  23. echo -e --------------------
  24. ls %path:~,-1% && echo -e \n true
  25. echo -e --------------------
  26. if #%~1==# && echo -e true
  27. if #%~1==# || echo -e false
复制代码


其中ls %path:~,-1% && echo -e \n true 这个返回的有点意思。

返回:




[ 本帖最后由 Plantsoot 于 2011-1-13 17:27 编辑 ]
回复

使用道具 举报

313#
 楼主| 发表于 2011-1-13 17:33:18 | 只看该作者

回复 #312 Plantsoot 的帖子

ud情形这个正常。
ls %path:~,-1% && echo -e \n true
含有/BOOT/IMGS的文件都显示出来了。
你用ls %path:~,-2%也是一样。

[ 本帖最后由 zxw 于 2011-1-13 17:37 编辑 ]
回复

使用道具 举报

314#
发表于 2011-1-13 17:43:20 | 只看该作者

回复 #313 zxw 的帖子

还有个问题,我今天加 MAXDOS模块,我记得DOS批处理的参数写法是 %~0 到 %~9,在 GRUB4DOS的批处理中 %~11 都可以用,奇怪了。
回复

使用道具 举报

315#
 楼主| 发表于 2011-1-13 17:51:04 | 只看该作者

回复 #314 Plantsoot 的帖子

如是这样,那就是bug
回复

使用道具 举报

316#
发表于 2011-1-13 17:53:45 | 只看该作者
原帖由 zxw 于 2011-1-13 17:51 发表
如是这样,那就是bug


我希望这个bug一直存在,我需要这个bug,呵呵,如果是bug这也是一个好的bug。
回复

使用道具 举报

317#
发表于 2011-1-13 18:04:06 | 只看该作者

回复 #316 Plantsoot 的帖子

应该不是bug  chenall大修改了%9  %9现在代表%9以后的所有参数(如果有的话)
回复

使用道具 举报

318#
发表于 2011-1-13 18:48:00 | 只看该作者
这个run文件怎么用?(我是菜鸟)
回复

使用道具 举报

319#
发表于 2011-1-13 20:36:20 | 只看该作者

回复 #313 zxw 的帖子

我想在HPY老大的ud版pe上加入你的run模块功能,但是又不打乱原来的部署,例如修改主界面上“运行自定义iso文件” 标签,回车后, 达到自动列出0PE目录的所有文件的功能,省的换一个或添一个iso就要改写一次ISO.LST(这个文件是hpy老大用于添加自定义iso的虽简单但是还是比不上run模块)。请问可不可以在主界面上把该标签的语言写成下面这样,同时拷贝run文件到可见区根目录(非ud区)。

title 【 3 】运行自定义iso(自动列举文件)
find --set-root ()/RUN && map --mem /RUN (0xff)
RUN /0PE/
回复

使用道具 举报

320#
发表于 2011-1-13 21:18:56 | 只看该作者
原帖由 sratlf 于 2011-1-13 18:04 发表
应该不是bug  chenall大修改了%9  %9现在代表%9以后的所有参数(如果有的话)


恩,看样子应该是,这是个很好的改进。
回复

使用道具 举报

321#
发表于 2011-1-13 21:20:47 | 只看该作者

回复 #319 tingyue-wu 的帖子

run模块需要同版本的G4D的grldr引导及规定版本的wenv的支持,将这两个下载后放到/BOOT/GRUB/目录中,然后在菜单中加入:
#声明外部命令位置  
command --set-path=(bd)/BOOT/GRUB/
#将外部命令WENV加载进内存
insmod (bd)/BOOT/GRUB/WENV
以上以Z大的RUN为例,调用菜单好象应这样写吧:
title 【 3 】运行自定义iso(自动列举文件)
 run /0PE/.input(自动列表)
或run /0PE/.automenu(自动菜单)
回复

使用道具 举报

322#
发表于 2011-1-13 21:28:59 | 只看该作者
Z大12日版的RUN已经不需要WENV的支持了,经测试有BUG,用fbinst制作的U盘启动的话,对可见区目录支持不好。S大的RUN目前还不支持自动菜色列表,只支持自动菜单。
调用应该是这样的:
RUN automenu /0PE/。
configfile (md)0x3000+0x10
回复

使用道具 举报

323#
发表于 2011-1-13 22:04:20 | 只看该作者
@zxw

:automenu段set i=0改为 set i=00

:makemenu 段 set /a i=%i%+1后增加
if "%i:~1,1%"=="" set i=0%i%

这样自动菜单也可以用双数标题序号了  新版抄袭了下自动菜单  嘿嘿
回复

使用道具 举报

324#
发表于 2011-1-13 22:05:06 | 只看该作者

回复 #322 幸运的草 的帖子

谢谢你呀
我先摸索着 呵呵
回复

使用道具 举报

325#
 楼主| 发表于 2011-1-13 22:07:29 | 只看该作者

回复 #323 sratlf 的帖子

谈不上抄袭,论坛本来就是互相学习。
我只是练手把自动列表弄好,其他增强功能我就不弄了。呵呵
其实,个人认为自动菜单更具有实用性,自动列表权当娱乐。

[ 本帖最后由 zxw 于 2011-1-13 22:12 编辑 ]
回复

使用道具 举报

326#
 楼主| 发表于 2011-1-14 12:23:02 | 只看该作者

回复 #322 幸运的草 的帖子

试试新版。.....
回复

使用道具 举报

327#
发表于 2011-1-14 14:05:50 | 只看该作者
确实无法读取可见区的文件,导致无法列出文件。(我用的是ud版pe)
回复

使用道具 举报

328#
发表于 2011-1-14 14:17:17 | 只看该作者

回复 #326 zxw 的帖子

读取可见区还是有问题,显示不了文件。如果加入()写成run ()/0PE/.automenu则会自动跳出 /BOOT/IMGS/默认目录(在ud隐藏区),同样不能进入0pe目录。
回复

使用道具 举报

329#
 楼主| 发表于 2011-1-14 14:38:25 | 只看该作者

回复 #328 tingyue-wu 的帖子

奇怪,我这里测试,无论设置如何复杂的环境,均能显示可见区目录列表。

()写成run ()/0PE/.automenu

这里可以看出,你用的0pe,测试的是automenu,而不是input,不知道你还有多少情形没汇报?如使用了加速器?gfxmenu图形菜单?

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

使用道具 举报

330#
发表于 2011-1-14 15:52:13 | 只看该作者

回复 #329 zxw 的帖子

用的是hpy7332的pe,ud版。把几个自定义iso文件放在可见区的0pe目录中。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-15 07:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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