无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
421#
 楼主| 发表于 2011-1-19 12:12:53 | 只看该作者
set命令能否再加个参数(取消回车换行)
set  /n
因为管道输出大多带回车换行

当然再写一句也简单:set a=%a:~0,-1%

[ 本帖最后由 zhaohj 于 2011-1-19 12:19 编辑 ]
回复

使用道具 举报

422#
发表于 2011-1-19 12:28:24 | 只看该作者
原帖由 zhaohj 于 2011-1-19 12:12 发表
set命令能否再加个参数(取消回车换行)
set  /n
因为管道输出大多带回车换行

当然再写一句也简单:set a=%a:~0,-1%


也许统一让SET命令不接受换行参数好了.必竟要用到换行的变量比较少用.

这样也比较符合正常情况.
回复

使用道具 举报

423#
 楼主| 发表于 2011-1-19 14:19:17 | 只看该作者
cat --replace=string1 --locate=string2 FILE
大多时候不灵(长度不变的情况下)。

搞个变量值的字符替换吧。
回复

使用道具 举报

424#
发表于 2011-1-19 14:30:30 | 只看该作者
原帖由 zhaohj 于 2011-1-19 14:19 发表
cat --replace=string1 --locate=string2 FILE
大多时候不灵(长度不变的情况下)。

搞个变量值的字符替换吧。



这个要完全匹配的,,变时替换还是用WENV吧。在GRUB4DOS内部实现这个功能不划算。
回复

使用道具 举报

425#
 楼主| 发表于 2011-1-19 14:38:45 | 只看该作者
tuxw的wenv有替换功能,你的wenv我印象中没有加入。
回复

使用道具 举报

426#
发表于 2011-1-19 15:15:21 | 只看该作者
原帖由 zhaohj 于 2011-1-19 14:38 发表
tuxw的wenv有替换功能,你的wenv我印象中没有加入。



记得很早之前就有了,只是没有公开用法而已,在WENV的贴子里面有介绍过
像下像这样子的,你可以试一下。^_^

set aa=cdef
wenv set aa=${aa!cd=e435}
回复

使用道具 举报

427#
发表于 2011-1-19 15:35:28 | 只看该作者

回复 #426 chenall 的帖子

哇,好东西。
c大的私货公开得越多越好。

另,我想到了,不用wenv的话,结合cat或shift命令也可以完成。

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

使用道具 举报

428#
发表于 2011-1-19 16:15:39 | 只看该作者
@chenall:
测试=作为分隔符时,发现=放在最前面,如图,这个算不算正常?
回复

使用道具 举报

429#
发表于 2011-1-19 16:43:21 | 只看该作者
原帖由 zxw 于 2011-1-19 16:15 发表
@chenall:
测试=作为分隔符时,发现=放在最前面,如图,这个算不算正常?
111655


这是个好办法。。。^_^

不过看起来有BUG,我查一下。。
回复

使用道具 举报

430#
发表于 2011-1-19 16:59:30 | 只看该作者
好了,更新了一下,修正了这个BUG。。

另外新的SET命令不再接受回车符。。
回复

使用道具 举报

431#
发表于 2011-1-19 20:19:12 | 只看该作者
修复了一个比较严重的BUG(fb文件系统).

影响到使用fb文件系统的功能(ud除外)

建议都更新到最新版。
http://grub4dos-chenall.googleco ... 4.5b-2011-01-19f.7z
回复

使用道具 举报

432#
 楼主| 发表于 2011-1-20 11:44:28 | 只看该作者
这个版本有问题

-----------------
使用这个版本发现C大的WENV for /f 根本无法运行,不出错,但没有结果
但运行tuxw的wenv for /f  又正常

Snap1.jpg (105.61 KB, 下载次数: 142)

Snap1.jpg
回复

使用道具 举报

433#
发表于 2011-1-20 12:17:41 | 只看该作者
看截图和FOR一点关系也没有,应该是其它原因吧.

为什么不用调试模式看看执行什么命令出错了呢?
回复

使用道具 举报

434#
 楼主| 发表于 2011-1-20 13:12:28 | 只看该作者
原帖由 chenall 于 2011-1-20 12:17 发表
看截图和FOR一点关系也没有,应该是其它原因吧.

为什么不用调试模式看看执行什么命令出错了呢?


上面图是tuxw的wenv for引起的出错
因为要控制输出,有些地方无法使用debug on
怎样在批处理能debug on又能控制输出?
回复

使用道具 举报

435#
 楼主| 发表于 2011-1-20 13:13:49 | 只看该作者
原帖由 chenall 于 2011-1-20 12:17 发表
看截图和FOR一点关系也没有,应该是其它原因吧.

为什么不用调试模式看看执行什么命令出错了呢?


上面图是tuxw的wenv for引起的出错
因为要控制输出,有些地方无法使用debug on
怎样在批处理能debug on又能控制输出?
回复

使用道具 举报

436#
发表于 2011-1-20 13:57:35 | 只看该作者
我试了一下FOR都是正常的呀,你的WENV是什么版本的?
最后上传的版本是2010-11-29的
回复

使用道具 举报

437#
 楼主| 发表于 2011-1-20 14:28:30 | 只看该作者
是2010-11-29。下面这段没有输出到PCI文件中
!BAT
checkrange 1 read 0x60080 && debug on ! debug off
echo
echo
echo TXTSETUP.SIF Driver-pack Process...
checkrange 1 read 0x60080 && pause --wait=10 Press any key...
echo
cat --length=0 (fd1)/PCI && FAT del (fd1)/PCI
cat --length=0 (fd1)/SIF && calc *0x8290=*0x8290+1024 && FAT mkfile size=* (fd1)/PCI
INIFILE (fd1)/SIF [HardwareIdsDatabase] > (fd1)/PCI
FAT copy /o (fd1)/PCI (fd1)/SIF
debug off
echo PCI$ > (fd1)/PCI
WENV for /f "eol=; tokens=1-2 delims==;" %i in ( (fd1)/SIF ) do (set a=%i ; check "$${a:0:4}"=="PCI\" ]]& set b=%j ]]] echo -n $ ]]] echo $${a}=$${b}) >> (fd1)/PCI
checkrange 1 read 0x60080 && echo display chkpci && cat --length=0x100 (fd1)/PCI && echo ...... && echo && pause --wait=10 Make txtsetup.oem , Press any key... ! FAT del (fd1)/SIF
WENV (reset p ; reset a ; reset b)
commandline
(fd2)/EXT/MAKEOEM.BAT

[ 本帖最后由 zhaohj 于 2011-1-20 16:14 编辑 ]

Snap1.jpg (96.55 KB, 下载次数: 141)

Snap1.jpg

test8.rar

121.46 KB, 下载次数: 11, 下载积分: 无忧币 -2

回复

使用道具 举报

438#
发表于 2011-1-20 15:04:03 | 只看该作者
虽然不能确定是什么原因,但不大可能是因为昨天的版本引起的。

调试时不要DEBUG OFF,否则看不出来是哪个命令失败了。
回复

使用道具 举报

439#
 楼主| 发表于 2011-1-20 15:15:34 | 只看该作者
要在批处理外面先debug on才能使用调试模式,呵呵,改了一下,现在按4变成调试模式了。

出现错误就是437的图,运行sif驱动类型的图

Snap2.jpg (158.33 KB, 下载次数: 135)

Snap2.jpg
回复

使用道具 举报

440#
 楼主| 发表于 2011-1-20 15:27:37 | 只看该作者
重新下载437楼的文件,界面按4是调试模式。

我已经把所有的命令改成两个版本的WENV都能通用了。
tuxw的WENV,运行上图【1】【2】能通过,运行【3】死机
C大的WENV,一个也没有通过。

[ 本帖最后由 zhaohj 于 2011-1-20 15:28 编辑 ]
回复

使用道具 举报

441#
发表于 2011-1-20 16:20:06 | 只看该作者
我还没有用过SRSF6...

你还是先自己调试一下原因好了。
回复

使用道具 举报

442#
 楼主| 发表于 2011-1-20 16:38:23 | 只看该作者
原因就是这句:
echo PCI$ > (fd1)/PCI
WENV for /f "eol=; tokens=1-2 delims==;" %i in ( (fd1)/SIF ) do (set a=%i ; check "$${a:0:4}"=="PCI\" ]]& set b=%j ]]] echo -n $ ]]] echo $${a}=$${b}) >> (fd1)/PCI
在批处理中运行出错或没有输出
你的WENV

很简单,你把这两句改成批处理,显示到屏幕,你测试一下就可以了。批处理中不灵,命令行下可以。

[ 本帖最后由 zhaohj 于 2011-1-20 17:02 编辑 ]

Snap1.jpg (95.06 KB, 下载次数: 144)

Snap1.jpg
回复

使用道具 举报

443#
发表于 2011-1-20 17:15:53 | 只看该作者
先试一下这个看看是不是还会这样。

grldr.rar

126.02 KB, 下载次数: 14, 下载积分: 无忧币 -2

回复

使用道具 举报

444#
 楼主| 发表于 2011-1-20 17:28:08 | 只看该作者
一样效果,wenv for命令在批处理中没有输出。

以前一直用tuxw的wenv,而且测试他的for没问题,是否是c大的wenv的for问题呢?for语句与批处理可能冲突了。

[ 本帖最后由 zhaohj 于 2011-1-20 17:43 编辑 ]
回复

使用道具 举报

445#
发表于 2011-1-20 17:59:55 | 只看该作者
不清楚,但是我调试的时候到这一步直接在命令行下测试是成功的。。

在你的批处理里面就什么都不输出,我重新写了一个批处理运行也是可以的。

你自己再试一下,如果找不到原因就换另一种写法看试试。也可以在这个语句里面加上一些调试的内容。看看

wenv for /f "eol=; tokens=1-2 delims==;" %i in ( (fd1)/TXT ) do (set a=%i ; check "$${a:0:4}"=="PCI\" ]]& set b=%j ]]] echo -n $ ]]] echo $${a}=$${b}) >> (fd1)/PCI
回复

使用道具 举报

446#
发表于 2011-1-20 22:53:17 | 只看该作者
试试新上传的WENV。
回复

使用道具 举报

447#
 楼主| 发表于 2011-1-21 09:11:22 | 只看该作者
比以前进步了,但WENV for还有问题
请你测试下面的文件,一个for错误

[ 本帖最后由 zhaohj 于 2011-1-21 09:13 编辑 ]

test8.rar

9.09 KB, 下载次数: 12, 下载积分: 无忧币 -2

回复

使用道具 举报

448#
 楼主| 发表于 2011-1-21 10:45:18 | 只看该作者
另外,批处理中把WENV (set disk=${a%%,} ; set value=${a##,})
中的%%也改成了一个%,嘿嘿,一下子不习惯...

Snap1.jpg (66.02 KB, 下载次数: 133)

Snap1.jpg
回复

使用道具 举报

449#
 楼主| 发表于 2011-1-21 11:38:25 | 只看该作者
现在可以确认for语句是有问题的,产生问题有可能是"()"匹配问题
下面的图有点启发:

[ 本帖最后由 zhaohj 于 2011-1-21 11:47 编辑 ]

Snap2.jpg (85.9 KB, 下载次数: 143)

Snap2.jpg
回复

使用道具 举报

450#
发表于 2011-1-21 13:58:26 | 只看该作者
再试试这个,,

现在回头再看WENV的代码,发现有好多地方不合理,,

以后有时间再重新整理吧、

wenv-2011-01-21.zip

14.82 KB, 下载次数: 18, 下载积分: 无忧币 -2

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-24 14:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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