无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
121#
 楼主| 发表于 2011-1-17 12:30:23 | 显示全部楼层
哇,真写错了,%1写成%1%,晕
:get_last
if "%1"=="" exit
shift
if "%1"=="" set last=%0
goto :get_last

金山快盘怎么都删了?

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

使用道具 举报

122#
 楼主| 发表于 2011-1-17 14:09:38 | 显示全部楼层
cat --locate=string
string限制16个字符还真不够,另外还要区分大小写,目前看来还得使用wenv(tuxw)。

cat加强一下还是很有必要。因为目前对文本的处理cat是关键内置命令
另外cat命令只有--length=0时我想其它都是应该默认输出的。
回复

使用道具 举报

123#
 楼主| 发表于 2011-1-19 12:12:53 | 显示全部楼层
set命令能否再加个参数(取消回车换行)
set  /n
因为管道输出大多带回车换行

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

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

使用道具 举报

124#
 楼主| 发表于 2011-1-19 14:19:17 | 显示全部楼层
cat --replace=string1 --locate=string2 FILE
大多时候不灵(长度不变的情况下)。

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

使用道具 举报

125#
 楼主| 发表于 2011-1-19 14:38:45 | 显示全部楼层
tuxw的wenv有替换功能,你的wenv我印象中没有加入。
回复

使用道具 举报

126#
 楼主| 发表于 2011-1-20 11:44:28 | 显示全部楼层
这个版本有问题

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

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

Snap1.jpg
回复

使用道具 举报

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

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


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

使用道具 举报

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

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


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

使用道具 举报

129#
 楼主| 发表于 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, 下载次数: 140)

Snap1.jpg

test8.rar

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

回复

使用道具 举报

130#
 楼主| 发表于 2011-1-20 15:15:34 | 显示全部楼层
要在批处理外面先debug on才能使用调试模式,呵呵,改了一下,现在按4变成调试模式了。

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

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

Snap2.jpg
回复

使用道具 举报

131#
 楼主| 发表于 2011-1-20 15:27:37 | 显示全部楼层
重新下载437楼的文件,界面按4是调试模式。

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

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

使用道具 举报

132#
 楼主| 发表于 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, 下载次数: 143)

Snap1.jpg
回复

使用道具 举报

133#
 楼主| 发表于 2011-1-20 17:28:08 | 显示全部楼层
一样效果,wenv for命令在批处理中没有输出。

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

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

使用道具 举报

134#
 楼主| 发表于 2011-1-21 09:11:22 | 显示全部楼层
比以前进步了,但WENV for还有问题
请你测试下面的文件,一个for错误

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

test8.rar

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

回复

使用道具 举报

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

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

Snap1.jpg
回复

使用道具 举报

136#
 楼主| 发表于 2011-1-21 11:38:25 | 显示全部楼层
现在可以确认for语句是有问题的,产生问题有可能是"()"匹配问题
下面的图有点启发:

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

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

Snap2.jpg
回复

使用道具 举报

137#
 楼主| 发表于 2011-1-21 15:07:30 | 显示全部楼层
还是没有改观,等你有空再改吧。

有记得有次你加了loop(continue)这样的命令,忘了,是否下次加上?!
回复

使用道具 举报

138#
 楼主| 发表于 2011-1-21 15:59:46 | 显示全部楼层
wenv for /f "eol=; tokens=1 delims=;" %i in ( (fd1)/SIF )  do (set a=%i ; check $${a:0:4}==PCI\ echo $${a})
出错
------------改成
wenv for /f "eol=; tokens=1 delims=;" %i in ( (fd1)/SIF )  do (set a=%i ; check $${a:0:4}==PCI\ echo %i)
能运行,但发觉输出结果少很多

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

Snap1.jpg (37.51 KB, 下载次数: 96)

Snap1.jpg

Snap2.jpg (361.69 KB, 下载次数: 111)

Snap2.jpg
回复

使用道具 举报

139#
 楼主| 发表于 2011-1-21 16:16:58 | 显示全部楼层
set a
变量值不对
引号问题导致
改成"tokens=1-2 delims==;"又无法运行

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

Snap3.jpg (45.5 KB, 下载次数: 93)

Snap3.jpg

Snap1.jpg (13.3 KB, 下载次数: 101)

Snap1.jpg
回复

使用道具 举报

140#
 楼主| 发表于 2011-1-21 17:06:46 | 显示全部楼层
原帖由 chenall 于 2011-1-21 16:50 发表
???为什么"tokens=1-2 delims==;"不能运行?


我也感到很奇怪啊?!
下面你测试一下

test.rar

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

回复

使用道具 举报

141#
 楼主| 发表于 2011-1-21 17:53:19 | 显示全部楼层
原帖由 chenall 于 2011-1-21 17:16 发表
我试了正常,不过你里面的countinue写错了!!!!


是的,加上 "delims==,;“就可以了,这个“,"逗号很关键,不然还会出错。

想不到这个逗号在作怪!

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

使用道具 举报

142#
 楼主| 发表于 2011-1-22 12:05:17 | 显示全部楼层
是引号在作怪,也许默认去掉引号不是好方法,有些情况下应该保留引导。
有个开关象tuxw的WENV switch keep_quote=on还真有必要。

看一下这里:
http://bbs.znpc.net/viewthread.php?tid=6047&extra=page%3D1

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

使用道具 举报

143#
 楼主| 发表于 2011-1-22 17:10:23 | 显示全部楼层
“如果引号不配对将不会被删除”,测试了一下,很好!
将大大减少出错概率!
回复

使用道具 举报

144#
 楼主| 发表于 2011-1-23 22:58:20 | 显示全部楼层
请C大修正chkpci不识别第一条id的bug

Snap1.jpg (65.97 KB, 下载次数: 110)

Snap1.jpg
回复

使用道具 举报

145#
 楼主| 发表于 2011-1-24 08:49:49 | 显示全部楼层
初步测试正常,C大最好把几个外部命令使用的内存块说明一下。
回复

使用道具 举报

146#
 楼主| 发表于 2011-1-26 12:28:09 | 显示全部楼层
嘿嘿,新版的set命令不再接受回车符,方便了许多!
回复

使用道具 举报

147#
 楼主| 发表于 2011-1-27 11:47:51 | 显示全部楼层
原帖由 hhh333 于 2011-1-27 09:18 发表
检测已知位置的文件是否存在,用if exist确实比较方便了,那if not exist如果不支持可能也不行。


嘿嘿,多虑了.

Snap1.jpg (18 KB, 下载次数: 106)

Snap1.jpg
回复

使用道具 举报

148#
 楼主| 发表于 2011-1-27 23:30:37 | 显示全部楼层
GPT需要windows2003sp1(x86)以上系统支持。

想问一下,GPT有什么优势?
回复

使用道具 举报

149#
 楼主| 发表于 2011-1-28 10:14:27 | 显示全部楼层
C大,commandline进入命令行,默认为debug 1 这个可以理解!因为调试的目的是要显示的
但从一个菜单文件进入另一个菜单文件configfile,能否不改变debug状态(即保持debug状态)
----------------
理想的状态,commandline也不改变debug状态,configfile也不改变debug状态。
回复

使用道具 举报

150#
 楼主| 发表于 2011-1-28 14:43:49 | 显示全部楼层
vmplayer 虚拟硬盘超过1T后,pxe无法启动。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 10:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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