无忧启动论坛

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

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

    [复制链接]
61#
 楼主| 发表于 2010-12-24 11:38:25 | 只看该作者

回复 #60 2010lifefx 的帖子

用7z打开……...
回复

使用道具 举报

62#
 楼主| 发表于 2010-12-24 11:52:21 | 只看该作者

回复 #59 黑色蛋挞 的帖子

我这里测试没有问题。
回复

使用道具 举报

63#
发表于 2010-12-24 11:54:44 | 只看该作者
>9个菜单,编号统一用两位数看起来舒服点。
回复

使用道具 举报

64#
发表于 2010-12-24 12:08:23 | 只看该作者
晕倒原来是压缩了两层。第一层解出来的run还是个压缩文件

不过我这里还是不能正常文件列表。

真机测试问题一样。
回复

使用道具 举报

65#
发表于 2010-12-24 13:03:00 | 只看该作者
分段替换了下。可以确定是:.autolist段的问题。

用旧版的
:.autolist
WENV check "#.txt#"=="#%~x1#" && goto :eof
WENV check "%~x1"=="" && goto :eof
WENV calc i++
WENV calc tt++
WENV set tlen=%~1
WENV check "${tt}"<>"3" ]]& set ttn=-n ]]& set ttm=t ]]! reset tt*
WENV check ${tlen,?}<=12 ]]| reset ttm
WENV check ${tlen,?}>=25 ]]& reset t*
WENV set N${i}=%~1 ]]& call echo -e ${ttn} \t$[0006]${i}$[0007]. $[0002]%~1\${ttm}
goto :eof

替换新版的
:.autolist
WENV check "%~x1"==".TXT" && goto :eof
WENV check "%~x1"=="" && goto :eof
WENV (calc i++ ; calc ij++ ; set tnn=%~1 ; set N${i}=%~1 ; reset trt)
WENV calc tln=${tnn,?}
WENV calc tls=${tln}+${i,?}+2
WENV check "${ij}"=="1" ]]& set tlt=\t ]]! reset tlt
wenv calc ik=tls%%24
wenv calc ij=tls/24+ij
WENV calc tbl=ij*-24-tln+94
WENV calc ttn=tls%%24/8*-1+3
WENV for /l %%i in (1,1,${ttn}) do set trt=$${trt}\t
WENV check "${ik}"=="0" ]]& reset trt ]]& calc ij=tls/-24+ij
WENV check "${ij}">="3" ]]& call checkrange 1:22 calc ${tbl} ]]& reset ij ]]& set trt=\n
WENV check "${ij}">="3" ]]& call checkrange 23:-1 calc ${tbl} ]]& set tlt=\n\t ]]& set ij=1
WENV call echo -e -n ${tlt}$[0006]${i}$[0007]. $[0002]%~1${trt}
goto :eof

可以显示列表可以引导文件。

尝试读代码排错,读不懂!!!
回复

使用道具 举报

66#
发表于 2010-12-24 13:32:19 | 只看该作者
WENV for /l %%i in (1,1,${ttn}) do set trt=$${trt}\t

这行注释掉就可以显示列表。当然是堆在一起的列表


修改就不会了。的慢慢尝试。

为什么你那里行我这里就不行呢。

wenv和grub4dos都是新版的
回复

使用道具 举报

67#
 楼主| 发表于 2010-12-24 13:46:20 | 只看该作者

回复 #66 2010lifefx 的帖子

wenv 是用的chenall还是tuxw的?

你把:WENV calc ttn=tls%%24/8*-1+3
改为:WENV calc ttn=tls/8*-1+3
试试,估计不行。

算了,我还是少用for为妙,估计是内存的关系。

[ 本帖最后由 zxw 于 2010-12-24 13:51 编辑 ]
回复

使用道具 举报

68#
 楼主| 发表于 2010-12-24 13:52:59 | 只看该作者

回复 #63 zhaohj 的帖子

可以改,但增加计算量,消耗内存。没多大必要。
回复

使用道具 举报

69#
发表于 2010-12-24 14:06:43 | 只看该作者
原帖由 zxw 于 2010-12-24 13:52 发表
可以改,但增加计算量,消耗内存。没多大必要。


直接使用100开始,取后面两位就OK了吧.
回复

使用道具 举报

70#
发表于 2010-12-24 14:29:13 | 只看该作者
原帖由 zxw 于 2010-12-24 13:46 发表
wenv 是用的chenall还是tuxw的?

你把:WENV calc ttn=tls%%24/8*-1+3
改为:WENV calc ttn=tls/8*-1+3
试试,估计不行。

算了,我还是少用for为妙,估计是内存的关系。


试了,不行。

我用的是tuxw修改的 2010-12-14这个WENV

胡乱改发现的

好像是set trt=$${trt}\t这个语句的问题。

改成set trt=${trt}\t能显示列表,但是一堆那种。 多了一个$就不出列表死掉了。

[ 本帖最后由 2010lifefx 于 2010-12-24 14:31 编辑 ]
回复

使用道具 举报

71#
发表于 2010-12-24 14:39:11 | 只看该作者
原帖由 zxw 于 2010-12-24 11:52 发表
我这里测试没有问题。
108914



还有为啥你的带文件夹我的文件夹下面的不出来呢?
回复

使用道具 举报

72#
 楼主| 发表于 2010-12-24 14:43:10 | 只看该作者

回复 #69 chenall 的帖子

还是c大高明,妙!.
呵,还可以减少计算量。
回复

使用道具 举报

73#
发表于 2010-12-24 14:53:49 | 只看该作者

回复 #62 zxw 的帖子

受不了了. 高手是否想的都过于高深了.
run的命令我是照葫芦画瓢.
---------------------------------
run (hd0,0)/iso/.input
---------------------------------
经过无意中测试我发现直接
---------------------------------
run (hd0,0)/iso/
---------------------------------
不加后面的.input就可以使用了
确认run文件使用没有问题
但是有以下疑问请指教
---------------------------------
find --set-root /hsf.txt 为什么不能用此语句定位U盘根目录后
在直接
run /iso/   这样可以不用让U盘在不同的硬盘环境中都可以使用.
或者是我水平不够.请指教


[ 本帖最后由 黑色蛋挞 于 2010-12-24 15:15 编辑 ]
回复

使用道具 举报

74#
发表于 2010-12-24 15:04:38 | 只看该作者

回复 #73 黑色蛋挞 的帖子

确实啊。不加 .input反而正常了。有文件列表了。




[ 本帖最后由 2010lifefx 于 2010-12-24 15:07 编辑 ]
回复

使用道具 举报

75#
 楼主| 发表于 2010-12-24 15:06:51 | 只看该作者
原帖由 黑色蛋挞 于 2010-12-24 14:53 发表
经过无意中测试我发现直接
---------------------------------
run (hd0,0)/iso/
---------------------------------
不加后面的.input就可以使用了 ...

这样也行。但是run (hd0,0)/iso/.input也应该可以,怪了。

[ 本帖最后由 zxw 于 2010-12-24 15:10 编辑 ]
回复

使用道具 举报

76#
发表于 2010-12-24 15:09:29 | 只看该作者
原帖由 zxw 于 2010-12-24 15:06 发表

这样也行?这是一个bug


不知道啥BUG,反正正常了。哈哈

title [06] /IOS/input
/BOOT/GRUB/BAT/BAT /ISO/.input
boot

title [07] /ISO/
/BOOT/GRUB/BAT/BAT /ISO/
boot

6不行,7行

[ 本帖最后由 2010lifefx 于 2010-12-24 15:10 编辑 ]
回复

使用道具 举报

77#
发表于 2010-12-24 15:14:12 | 只看该作者

回复 #75 zxw 的帖子

大佬 我反反复复折腾了好久 才发现的
我水平差. 你们代码都看不懂.都是拿来主义.看别人怎么用的经验 自己一步步测试
我发现还有这样的问题 提供下
启动grub后. 直接进入控制台命令
运行 run (hd0,0)/iso/.input也是可以出现列表的
但是输入数字后.按回车. 我用的vmware 7的版本就直接报错.提示需要将虚拟机重新启动.


[ 本帖最后由 黑色蛋挞 于 2010-12-24 15:16 编辑 ]
回复

使用道具 举报

78#
 楼主| 发表于 2010-12-24 15:14:48 | 只看该作者

回复 #76 2010lifefx 的帖子

才仔细看了一下,这不是bug.这样使用是正常的。
但是run (hd0,0)/iso/.input也应该可以,我再看一下。
回复

使用道具 举报

79#
 楼主| 发表于 2010-12-24 15:16:00 | 只看该作者

回复 #77 黑色蛋挞 的帖子

可能是使用了for,消耗内存相对较大。
回复

使用道具 举报

80#
发表于 2010-12-24 15:20:40 | 只看该作者

回复 #79 zxw 的帖子

大佬. 能否提供个办法
不让run 后面接 绝对路径
就像 grub里面的find 命令可以定位硬盘
回复

使用道具 举报

81#
发表于 2010-12-24 15:31:07 | 只看该作者

WENV check "%~nx1"=="" && goto .input ! WENV set name=$U,%~nx1

这行后面加了行

WENV check "%~nx1"==".input" && goto .input ! WENV set name=$U,%~nx1

.input也可以了。

=。=

查找了。你没有“.input”的判断。能进去才是BUG,哈哈

[ 本帖最后由 2010lifefx 于 2010-12-24 15:37 编辑 ]
回复

使用道具 举报

82#
 楼主| 发表于 2010-12-24 15:56:34 | 只看该作者

回复 #81 2010lifefx 的帖子

call call :%~x1 ${path}${name}
或者goto :%~x1 都可以进去。
回复

使用道具 举报

83#
发表于 2010-12-24 16:12:33 | 只看该作者
原帖由 zxw 于 2010-12-24 15:56 发表
call call :%~x1 ${path}${name}
或者goto :%~x1 都可以进去。


call call :%~x1 ${path}${name}

%~x1是输入的参数?还是RUN?

如果是RUN 那就变成死循环了 一直调用 RUN /path/.input

goto :%~x1这个语句在RUN中没找到。

%~x1是输入的参数?还是RUN?

[ 本帖最后由 2010lifefx 于 2010-12-24 16:15 编辑 ]
回复

使用道具 举报

84#
 楼主| 发表于 2010-12-24 16:20:44 | 只看该作者

回复 #83 2010lifefx 的帖子

知道dos的批处理不?不知道的话去学习一下。
这里的%~x1 、%~nx1 等与dos的批处理是一样的。

[ 本帖最后由 zxw 于 2010-12-24 16:22 编辑 ]
回复

使用道具 举报

85#
发表于 2010-12-24 16:59:23 | 只看该作者
call call :%~x1 ${path}${name}
这个读懂了。

我用
wenv echo 和 “$Input”命令单步执行 得到如下结果

通过call call :.input /path/.input

进入.input分支后在第一次执行到:.autolist分支的WENV for /l %%i in (1,1,${ttn}) do set trt=$${trt}\t 行时 系统死掉。

将set trt=$${trt}\t换掉。例如换成“set trt=\t” 这个for循环能正常执行。

通过goto .input

进入.input分支后。全部一切正常。
回复

使用道具 举报

86#
发表于 2010-12-24 21:19:43 | 只看该作者
如果菜单列表中有一个返回原菜单项就比较完美了。
Str的RUN的自动列菜单中有返回原菜单项。
回复

使用道具 举报

87#
发表于 2010-12-24 21:29:16 | 只看该作者
@zxw

dos时代菜鸟的工具箱和maxdos工具箱调用内部工具的处理不太好  我写的diskgenius只是个例子  

RUN /BOOT/IMGS/DTS.IMA 1c  更改1c为其他可以启动不同的工具  如3a是运行ghost  6a是清除系统密码等  或者两个连用  4c1 3a 是调用 ifsdrv—ntfs驱动装载再ghost备份/恢复

你的处理方式使得这两个工具箱只能调用diskgenius一种工具  

不过不着急  等你把文件列表搞定再改吧  先记得有这个问题就行了
回复

使用道具 举报

88#
发表于 2010-12-24 21:31:49 | 只看该作者
这几天忙没什么时间看论坛,zxw 大又出好东西了,呵呵,支持一下。
回复

使用道具 举报

89#
 楼主| 发表于 2010-12-24 22:15:02 | 只看该作者
原帖由 sratlf 于 2010-12-24 21:29 发表
@zxw

dos时代菜鸟的工具箱和maxdos工具箱调用内部工具的处理不太好  我写的diskgenius只是个例子  

RUN /BOOT/IMGS/DTS.IMA 1c  更改1c为其他可以启动不同的工具  如3a是运行ghost  6a是清除系统密码等   ...

你说的不错,我只是想搞定列表的问题,力求简单高效。调用diskgenius等只是顺便的事,有兴趣的话,以后再搞。

@Plantsoot :
我什么时候出好东西了?我是菜鸟一只,别折杀我了。

[ 本帖最后由 zxw 于 2010-12-24 22:16 编辑 ]
回复

使用道具 举报

90#
发表于 2010-12-25 10:39:01 | 只看该作者
几个月没来。。grub4dos又强大了囧。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 18:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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