回复 #60 2010lifefx 的帖子
用7z打开……...回复 #59 黑色蛋挞 的帖子
我这里测试没有问题。>9个菜单,编号统一用两位数看起来舒服点。 晕倒原来是压缩了两层。第一层解出来的run还是个压缩文件
不过我这里还是不能正常文件列表。
真机测试问题一样。 分段替换了下。可以确定是:.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$${i}$. $%~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}$${i}$. $%~1${trt}
goto :eof
可以显示列表可以引导文件。
尝试读代码排错,读不懂!!! WENV for /l %%i in (1,1,${ttn}) do set trt=$${trt}\t
这行注释掉就可以显示列表。当然是堆在一起的列表
修改就不会了。的慢慢尝试。
为什么你那里行我这里就不行呢。
wenv和grub4dos都是新版的
回复 #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 编辑 ]
回复 #63 zhaohj 的帖子
可以改,但增加计算量,消耗内存。没多大必要。 原帖由 zxw 于 2010-12-24 13:52 发表 http://bbs.wuyou.net/images/common/back.gif可以改,但增加计算量,消耗内存。没多大必要。
直接使用100开始,取后面两位就OK了吧. 原帖由 zxw 于 2010-12-24 13:46 发表 http://bbs.wuyou.net/images/common/back.gif
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 编辑 ] 原帖由 zxw 于 2010-12-24 11:52 发表 http://bbs.wuyou.net/images/common/back.gif
我这里测试没有问题。
108914
还有为啥你的带文件夹我的文件夹下面的不出来呢?
回复 #69 chenall 的帖子
还是c大高明,妙!.呵,还可以减少计算量。
回复 #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 编辑 ]
回复 #73 黑色蛋挞 的帖子
确实啊。不加 .input反而正常了。有文件列表了。[ 本帖最后由 2010lifefx 于 2010-12-24 15:07 编辑 ] 原帖由 黑色蛋挞 于 2010-12-24 14:53 发表 http://bbs.wuyou.net/images/common/back.gif
经过无意中测试我发现直接
---------------------------------
run (hd0,0)/iso/
---------------------------------
不加后面的.input就可以使用了 ...
这样也行。但是run (hd0,0)/iso/.input也应该可以,怪了。
[ 本帖最后由 zxw 于 2010-12-24 15:10 编辑 ] 原帖由 zxw 于 2010-12-24 15:06 发表 http://bbs.wuyou.net/images/common/back.gif
这样也行?这是一个bug
不知道啥BUG,反正正常了。哈哈
title /IOS/input
/BOOT/GRUB/BAT/BAT /ISO/.input
boot
title /ISO/
/BOOT/GRUB/BAT/BAT /ISO/
boot
6不行,7行
[ 本帖最后由 2010lifefx 于 2010-12-24 15:10 编辑 ]
回复 #75 zxw 的帖子
大佬 我反反复复折腾了好久 才发现的我水平差. 你们代码都看不懂.都是拿来主义.看别人怎么用的经验 自己一步步测试
我发现还有这样的问题 提供下
启动grub后. 直接进入控制台命令
运行 run (hd0,0)/iso/.input也是可以出现列表的
但是输入数字后.按回车. 我用的vmware 7的版本就直接报错.提示需要将虚拟机重新启动.
[ 本帖最后由 黑色蛋挞 于 2010-12-24 15:16 编辑 ]
回复 #76 2010lifefx 的帖子
才仔细看了一下,这不是bug.这样使用是正常的。但是run (hd0,0)/iso/.input也应该可以,我再看一下。
回复 #77 黑色蛋挞 的帖子
可能是使用了for,消耗内存相对较大。回复 #79 zxw 的帖子
大佬. 能否提供个办法不让run 后面接 绝对路径
就像 grub里面的find 命令可以定位硬盘 在
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 编辑 ]
回复 #81 2010lifefx 的帖子
call call :%~x1 ${path}${name}或者goto :%~x1 都可以进去。 原帖由 zxw 于 2010-12-24 15:56 发表 http://bbs.wuyou.net/images/common/back.gif
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 编辑 ]
回复 #83 2010lifefx 的帖子
知道dos的批处理不?不知道的话去学习一下。这里的%~x1 、%~nx1 等与dos的批处理是一样的。
[ 本帖最后由 zxw 于 2010-12-24 16:22 编辑 ] 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分支后。全部一切正常。 如果菜单列表中有一个返回原菜单项就比较完美了。
Str的RUN的自动列菜单中有返回原菜单项。 @zxw
dos时代菜鸟的工具箱和maxdos工具箱调用内部工具的处理不太好我写的diskgenius只是个例子
RUN /BOOT/IMGS/DTS.IMA 1c更改1c为其他可以启动不同的工具如3a是运行ghost6a是清除系统密码等或者两个连用4c1 3a 是调用 ifsdrv—ntfs驱动装载再ghost备份/恢复
你的处理方式使得这两个工具箱只能调用diskgenius一种工具
不过不着急等你把文件列表搞定再改吧先记得有这个问题就行了 这几天忙没什么时间看论坛,zxw 大又出好东西了,呵呵,支持一下。 原帖由 sratlf 于 2010-12-24 21:29 发表 http://bbs.wuyou.net/images/common/back.gif
@zxw
dos时代菜鸟的工具箱和maxdos工具箱调用内部工具的处理不太好我写的diskgenius只是个例子
RUN /BOOT/IMGS/DTS.IMA 1c更改1c为其他可以启动不同的工具如3a是运行ghost6a是清除系统密码等 ...
你说的不错,我只是想搞定列表的问题,力求简单高效。调用diskgenius等只是顺便的事,有兴趣的话,以后再搞。
@Plantsoot :
我什么时候出好东西了?我是菜鸟一只,别折杀我了。
[ 本帖最后由 zxw 于 2010-12-24 22:16 编辑 ] 几个月没来。。grub4dos又强大了囧。