无忧启动论坛

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

goto %CONFIG% 为什么转不到:%CONFIG%?

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-19 17:03:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
goto %CONFIG% 为什么转不到:%CONFIG%?

CONFIG.SYS内容:

[menu]
menuitem=UMBPCI
menuitem=HIMEM
menuitem=EMM386
menudefault=UMBPCI,30
menucolor=7,1
[UMBPCI]
[HIMEM]
[EMM386]
[COMMON]


AUTOEXEC.BAT内容:

GOTO %CONFIG%
:%CONFIG%
type test.txt
goto end
:END

如CONFIG.SYS选UMBPCI,上面的autoexec.bat运行后提示
a:\>GOTO UMBPCI
Label not found


高手请指教。
11#
发表于 2009-7-23 07:44:52 | 只看该作者
3楼的兄弟写的代码其实有点问题,每个分支都忘了加个跳转的,不然上面分支就会渗透到下面去了。

GOTO %CONFIG%

:UMBPCI
    语句
    goto NEXT
:HIMEM
    语句
    goto NEXT
:EMM386
    语句
    goto NEXT

:NEXT
    .....
回复

使用道具 举报

10#
发表于 2009-7-23 07:40:27 | 只看该作者
如果要执行同样的代码,三个label放一起即可。
goto %config%

:UMBPCI
:HIMEM
:EMM386
  执行语句
回复

使用道具 举报

9#
 楼主| 发表于 2009-7-23 04:55:37 | 只看该作者

回复 #8 NicTense 的帖子

哈哈,谢谢仁兄,把我引回正途。
其实我不是应用,是学习。
如你所说,直接写,就是最简单的。原已发现这样最好。可能有些走火入魔,非要在那里加东西去实现,竟然丢了真理。当看到你的回复,呆了三秒。
回复

使用道具 举报

8#
发表于 2009-7-23 03:13:44 | 只看该作者
原帖由 hzdjzx 于 2009-7-23 02:02 发表
汗~~~~~~~
发现更简单的是加个NOT,然后随便输入一个不存在的段名

CONFIG.SYS内容:
[menu]
menuitem=UMBPCI
menuitem=HIMEM
menuitem=EMM386
menudefault=UMBPCI,30
menucolor=7,1

[HIMEM]
[EMM ...



只是告诉你方法

如果针对你的实际问题

你总共就只有3项,3项对应代码都一样

实际上你根本不用管 %config%

直接写你的代码就行了
回复

使用道具 举报

7#
 楼主| 发表于 2009-7-23 02:02:05 | 只看该作者
汗~~~~~~~
发现更简单的是加个NOT,然后随便输入一个不存在的段名

CONFIG.SYS内容:
[menu]
menuitem=UMBPCI
menuitem=HIMEM
menuitem=EMM386
menudefault=UMBPCI,30
menucolor=7,1
[UMBPCI]
[HIMEM]
[EMM386]
[COMMON]

AUTOEXEC.BAT内容:

if not "%config%"=="hahaha" goto deault
:default
回复

使用道具 举报

6#
 楼主| 发表于 2009-7-21 02:15:17 | 只看该作者
谢谢了,你们的指导。让我明白系统变量当段名根本就是错误,并且指明了实现跳转的各种方法。
回复

使用道具 举报

5#
发表于 2009-7-21 01:25:30 | 只看该作者
原帖由 hzdjzx 于 2009-7-20 01:34 发表
首先谢谢你们的指点。
都指教了可行的办法。

还请指教:
处理段名不能用批处理系统变量%CONFIG% ,可以用自定变量吗?
不管%CONFIG%指代的是UMBPCI或者HIMEM或者EMM386,接下来的代码完全一样。如果能用变 ...


应该是不行的吧,段名的变量好像是不会被执行值替换的

不过你的具体问题,三段代码一样很容易解决

if "%config%"=="UMBPCI" goto deault
if "%config%"=="HIMEM" goto deault
if "%config%"=="EMM386" goto deault
...(其他值对应的转向处理)

:default
xxx
xxx
回复

使用道具 举报

4#
 楼主| 发表于 2009-7-20 01:34:06 | 只看该作者
首先谢谢你们的指点。
都指教了可行的办法。

还请指教:
处理段名不能用批处理系统变量%CONFIG% ,可以用自定变量吗?
不管%CONFIG%指代的是UMBPCI或者HIMEM或者EMM386,接下来的代码完全一样。如果能用变量当段名,就不用那么多除了段名不一样,代码完全一样的段了。如果不能用变量当段名,这种情况还有什么办法可以精简代码?
回复

使用道具 举报

3#
发表于 2009-7-19 18:40:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2#
发表于 2009-7-19 17:41:10 | 只看该作者
我的方法是,另外起个LABEL,如 if "%config%"=="UMBPCI" goto umbpci1
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-5 11:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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