无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: sratlf
打印 上一主题 下一主题

[分享] RUN 1206 更新 支持磁盘交换,文件检索,自动菜单,自动列表,全自动安装nt5x系统

    [复制链接]
271#
发表于 2011-1-18 23:09:59 | 只看该作者

回复 #269 sratlf 的帖子

另外有个小建议,先增加一下这个命令 RUN --automenu --mem 令自动生成的菜单都有--mem参数,并且可以同时 RUN --automenu --mem --firadisk
回复

使用道具 举报

272#
 楼主| 发表于 2011-1-18 23:19:04 | 只看该作者

回复 #271 2011eli 的帖子

全局添加倒是容易实现  增加两个参数就行  明天给你个测试版试下

通过txt导入命令还没什么想法可以实现  有点麻烦
回复

使用道具 举报

273#
发表于 2011-1-19 08:43:15 | 只看该作者
LZ: 198#和260#新版RUN自动菜单列表,对长文件名显示仍旧不正常,表现为 dts170AAU.IMA 显示正常,dts171AAU.gz 文件却显示为dts170~1.gz 和dts170AAU.gz 两个,实际是同一个文件,而ISO文件也是如此,除非把文件名改成8.3格式,才显示正常,希望LZ修正此问题。。
PS:因我把GRUB的BOOT目录改为GDOS,然后把LZ的RUN文件中的/BOOT/改成/GDOS/而已,不改的话自动菜单列表就无法进入,这点小修改应该影响不大吧。。。



最下面的Win7PEv16.66.iso与WIN7PE~1.ISO是同一个文件。
以上图为GRUB已升级为最新版,RUN为LZ的260#的最新版本。无论是真实机(已试过多台机器),还是虚拟机中测试结果都一样。。

[ 本帖最后由 hai2002713 于 2011-1-19 08:49 编辑 ]
回复

使用道具 举报

274#
发表于 2011-1-19 09:01:22 | 只看该作者

回复 #272 sratlf 的帖子

我觉得参照你从txt导入title的方法应该也行,因为aotumenu主要是生产菜单,可以把txt第二行开始的当做菜单参数,例如写了这样一个 同名.txt :
XXX WinPE
--mem  --firadisk
--xxxxx
....

然后上面的txt会生成菜单:
title XX WinPE
RUN --automenu --mem --firadisk --xxxxx 同名.iso

这只是我的想法,可能你会有更好的形式。



此外还可以增加一个途径,第二行以下的行如果不是--开头则表示指定了具体菜单,比如  同名.txt 为
XXX PE
RUN --mem --firadisk XX.ISO
Boot
XXXXXXXXX

上面的文件生成:
title XXX PE
RUN --mem --firadisk XX.ISO
Boot
XXXXXXXXX


能增加检错纠错功能更好,有不能识别的东西,可以启动时在屏幕显示1秒钟或写进log文件。


另外有一点非常重要的是:
必须增加关闭参数,
例如说,我在menu.list里面写了RUN --automenu --mem --firadisk \BOOT\ISOS\
那我某个ISO想关闭mem或firadisk呢怎么办,最好能在txt里面能支持--nomem --nofiradisk,(为了方便,然后再增加一个清除所有参数的参数--noparam,加了--noparam相当于生成没参数的RUN,RUN XX.ISO。)


想的容易做起来可能比较麻烦。。。或许上面的你已经想过,只是实现问题。。。
期待RUN越来越强,越强就越方便。

[ 本帖最后由 2011eli 于 2011-1-19 09:11 编辑 ]
回复

使用道具 举报

275#
发表于 2011-1-19 09:14:35 | 只看该作者
问:FIRADISK.IMG文件可不可以使用GZ压缩?
回复

使用道具 举报

276#
 楼主| 发表于 2011-1-19 09:56:28 | 只看该作者
@ hai2002713

你是通过什么方式启动的  我实机和虚拟机测试都很正常  没办法重现你的错误  不好说是哪里出的问题   你可以试下zxw的run  看看有没有这个问题

firadisk可以用gz压缩  这个任意

ps:可以不用改源码  使用 RUN --automenu /GDOS/IMGS/  就可以了


@ 2011eli

想法很好  我还是想想怎么实现吧  目前我还不知道怎么把txt的第二行作为参数写进去

还有  全局参数恐怕不能和txt导入参数共同使用  很容易发生混乱  可行的办法是txt参数优先  没有txt参数再用全局参数
回复

使用道具 举报

277#
发表于 2011-1-19 10:03:33 | 只看该作者
原帖由 sratlf 于 2011-1-19 09:56 发表
@ hai2002713

你是通过什么方式启动的  我实机和虚拟机测试都很正常  没办法重现你的错误  不好说是哪里出的问题   你可以试下zxw的run  看看有没有这个问题

firadisk可以用gz压缩  这个任意

ps:可以 ...

不用试了,我已取消过滤这种问题。目前考虑到没有很好的过滤方法,有可能把不应过滤的文件过滤掉。

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

使用道具 举报

278#
 楼主| 发表于 2011-1-19 10:13:42 | 只看该作者

回复 #277 zxw 的帖子

那你再想想怎么把txt参数导入吧  别闲着  嘿嘿

想把同名txt改成批处理  不知道可不可行
回复

使用道具 举报

279#
发表于 2011-1-19 10:16:40 | 只看该作者

回复 #278 sratlf 的帖子

我想很简单,用 cat定位第二行,换行符为标志。
回复

使用道具 举报

280#
 楼主| 发表于 2011-1-19 10:24:15 | 只看该作者

回复 #279 zxw 的帖子

关键我不会  我很少使用cat命令

使用换行符想过了  对我不太可行  目前我是 [序号] 显示名 \n 源文件名  这样处理的  实在不行再考虑舍弃解释信息

不知道cat能否截取指定长度或指定位置的字符
回复

使用道具 举报

281#
发表于 2011-1-19 10:37:37 | 只看该作者
可以取最后一行,如取第三行:
debug 1
cat --locate=\xA --number=2 %~n1.TXT | set skip=
cat --skip=0x%skip% | set c=
debug 0
c变量的值应该就是要获取的第三行。
若行数不定,稍微复杂一点,也不难,多加一句,先判断换行符个数就行。

你可以先测试一下,我未测试。

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

使用道具 举报

282#
发表于 2011-1-19 10:40:37 | 只看该作者

回复 #270 pseudo 的帖子

这个我倒是测试过,也和P大交流过,今天只说U启,光盘除外,U启的话,由于目前还大都1.0/1.1接口,受接口的影响,原来的理论不太可靠,以0PE.isO为例,如果加mem参数的话,我的U启动到桌面为1分钟左右,如果不加mem参数,连续存放,启动到桌面7分钟。这还都是原版的0PE中自带的GRLDR,相对于非0PE的其他ISO来说以杏雨梨云2011的29M的ISO,如果加mem参数启动1分零5秒进桌面,不加参数要12分钟。速度之差之大就不用多说了。但如果加载加速器不死机的话,速度会有很大提高,还以0PE为例,不加参数一分多一点启动完毕,加参数45秒。如果这个ISO放在硬盘或光盘上的话就另当别论了。
   这也是本人在你和Z大的RUN中来回切换测试的原因,最原先是不支持MEM参数,到后来支持。
  Z大18日更新的RUN其他解决了所有的问题(除自动菜单),自动列表可以在数字前加是f空格,支持mem,只不过要加载FIRADISK驱动,如果不想的话,可以按C进命令行,手动加参数运行。但自动菜单目前不支持加参数运行ISO。这也好,有些ISO工具盘可能不需要加参数,先择余地多一些。
回复

使用道具 举报

283#
发表于 2011-1-19 10:43:39 | 只看该作者
zxw的run  的自动菜单更糟,IMA的文件都有两个显示了。
等下试试英文原版GRLDR,我一直使用中文的GRLDR文件,难道是这个原因???


[ 本帖最后由 hai2002713 于 2011-1-19 10:47 编辑 ]
回复

使用道具 举报

284#
发表于 2011-1-19 10:58:54 | 只看该作者

回复 #283 hai2002713 的帖子

呵,我已取消过滤这种形式。改天想个新办法来过滤。
回复

使用道具 举报

285#
 楼主| 发表于 2011-1-19 11:08:58 | 只看该作者
@ 260# pseudo大

真是抱歉  我忘记测试这个了  晚上就测试


@ zxw

晚上再测吧  现在测试不了  晚上看看效果
回复

使用道具 举报

286#
发表于 2011-1-19 11:23:55 | 只看该作者
刚才试了下,无论是E文原版的,还是中文版的GRLDR,RUN的自动菜单都显示有长文件名和短文件名。。。LS的两位RUN都试过了,结果都一样。。。
我也奇怪,LZ为什么会没有这种情况 。。
回复

使用道具 举报

287#
发表于 2011-1-19 11:25:14 | 只看该作者
原帖由 sratlf 于 2011-1-18 23:19 发表
全局添加倒是容易实现  增加两个参数就行  明天给你个测试版试下


有空先把这个简单的整好,等着这个玩,呵呵。。。
谢谢。。
回复

使用道具 举报

288#
 楼主| 发表于 2011-1-19 11:43:39 | 只看该作者
@ hai2002713

你先告诉我你用什么方式启动的  看能不能重现

@ 2011eli

不知是否有基础  可以用记事本打开run  看下怎么实现方便
回复

使用道具 举报

289#
发表于 2011-1-19 12:27:33 | 只看该作者

回复 #283 hai2002713 的帖子

与这个没有关系,我就是使用的中文版,使用这个需要定位,你加上个定位语就好了,我没加定位语时路径乱跑,特别是可见区有时找到,有时找不到,加上定位语后实机测试没能问题,具体如何加,到那个帖子下,有事例。
回复

使用道具 举报

290#
发表于 2011-1-19 13:56:43 | 只看该作者
来学习,能直接grub导入iso安装系统也不错
回复

使用道具 举报

291#
发表于 2011-1-19 14:16:16 | 只看该作者
贴一个获取指定行内容的批处理代码
调用方法
第一个参数是文件名
第二个参数是一个变量名(获取到的内容会放在这个变量中)
第三个参数是行数,第几行。从1开始的。

例子:读取test.txt 的第9行设为变量line9
call :read_line /test.txt line9=9
exit

:read_line
set _start=0
set _end=0
cat --locate=\xA --number=%3 %1 | call :get_last_line
set /a _end=%_end%-%_start%
cat --skip=%_start% --length=%_end% %1 | set %2=
set _start=
set _end=
exit

:get_last_line
if "%1"=="" exit
if "%2"=="" && set /a _end=0x%1 ! if "%3"=="" && set /a _start=0x%1+1
shift
goto :get_last_line

注:如果文件的换行符是回车+换行的,获取到内容最后会有一个换行符0xd

[ 本帖最后由 chenall 于 2011-1-19 14:28 编辑 ]
回复

使用道具 举报

292#
发表于 2011-1-19 14:40:48 | 只看该作者
@chenall:
学习了,受益不浅。

call :get_last_line后面不用紧跟空格?

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

使用道具 举报

293#
发表于 2011-1-19 15:08:25 | 只看该作者
原帖由 zxw 于 2011-1-19 14:40 发表
@chenall:
学习了,受益不浅。

call :get_last_line后面不用紧跟空格?


因为 cat命令的结果第一个字符肯定是空格,所以就不用了。。其它命令要看情况。。

不过可以加一个空格比较保险。。

另外为了防止不清楚的人误删必要的空格,我会采用类似如下的做法
ls | call :get_last_line %9
使用一个参数%9,一般情况下%9都是不存在的,当然了特殊情况要特殊考虑。。
回复

使用道具 举报

294#
发表于 2011-1-19 15:14:09 | 只看该作者
受教了,谢谢chenall大指点。
回复

使用道具 举报

295#
发表于 2011-1-19 15:23:48 | 只看该作者
原帖由 sratlf 于 2011-1-19 11:43 发表
.....
不知是否有基础  可以用记事本打开run  看下怎么实现方便



我只能看懂部分代码,我有个小建议,把里面结构增加成这样:

:start
   这里循环遍历参数,把参数用变量储存,先不跳转,保证遍历所有参数
   if  存在"--firadisk"  设置变量 varFiradisk=1
   if  存在"--mem" 设置变量 varMem=1
   .........

:isofile
   if varFiradisk==1    goto   :isofiradisk
   map ((varMem==1) ? "--mem" : "" ) XX.iso     ||     map ((varMem!=1) ? "--mem" : "") XX.iso
   map --hook
   .......

:aotumenu
   .....
   (生成菜单时)
   if varFiradisk==1 生成 RUN --firadisk  XX.iso
   else 生成 RUN ((varMem==1) ? "--mem" : "" ) XX.iso
  .....



个人觉得这种形式会便于以后再增加参数,也利于从txt文件读取参数。


另外,你发布Bat文本文件很好,非常便于个人修改,不过我想看zxw兄的RUN时发现不是文本文件的,你1楼的RUN似乎也一样,这些是不是用什么工具编译过的?(能反编译吗?)
回复

使用道具 举报

296#
发表于 2011-1-19 15:46:07 | 只看该作者
原帖由 2011eli 于 2011-1-19 15:23 发表



我只能看懂部分代码,我有个小建议,把里面结构增加成这样:

:start
   这里循环遍历参数,把参数用变量储存,先不跳转,保证遍历所有参数
   if  存在"--firadisk"  设置变量 varFiradisk=1
   if ...
不过我想看zxw兄的RUN时发现不是文本文件的,你1楼的RUN似乎也一样,这些是不是用什么工具编译过的?(能反编译吗?)



RUN文件是可以用GZ压缩的,压缩后去掉扩展名.gz,可以使用Total commander文件管理器压缩,很方便的。。
回复

使用道具 举报

297#
发表于 2011-1-19 15:46:25 | 只看该作者
应该是GZ压缩的吧,用WINRAR或其它工具解压一下就可以了。。
回复

使用道具 举报

298#
发表于 2011-1-19 16:10:30 | 只看该作者
汗。。。原来是GZ。
回复

使用道具 举报

299#
 楼主| 发表于 2011-1-19 17:59:31 | 只看该作者
@ pseudo大

刚刚测试了下  RUN /0PE.ISO  启动到滚动条需时30秒+  不过35s

RUN /0PE.ISO --mem  启动到滚动条需要40秒+ 不过45秒

以上为虚拟机测试  实机测试时间比虚拟机时间更长些  两种都要慢10秒左右

@ 2011eli

先给你个测试版  格式如下

title automenu
set front=--firadisk
set next=--nodisk
RUN --automenu
configfile (md)0x3000+0x10

也可以只用set next=--mem

[ 本帖最后由 sratlf 于 2011-1-19 18:01 编辑 ]

RUN.zip

1.8 KB, 下载次数: 17, 下载积分: 无忧币 -2

回复

使用道具 举报

300#
发表于 2011-1-19 20:22:52 | 只看该作者
原帖由 hai2002713 于 2011-1-19 08:43 发表
LZ: 198#和260#新版RUN自动菜单列表,对长文件名显示仍旧不正常,表现为 dts170AAU.IMA 显示正常,dts171AAU.gz 文件却显示为dts170~1.gz 和dts170AAU.gz 两个,实际是同一个文件,而ISO文件也是如此,除非把文 ...


在我这里也出现这种情况,不能正确显示长文件名。
环境:
PBR(BOOTICE0.81生成的grub4dos),引导grldr(grub4dos-0.4.5b-2011-01-18),使用  wenv-tuxw-2010-12-14.zip 和  RUN(20110118),ISO镜像放在NTFS分区( 逻辑分区,非主分区,目录\BOOT\ISOS\)。
不知道RUN是调用哪个程序读取文件列表的,或许与那程序也有关。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 05:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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