中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-18 01:19
47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 多重配置中,AUTOEXEC.BAT对config变量的引用会不会影响执行结果?
可打印版本  1,087 / 12
第1楼 GOTOmsdos 发表于 2006-04-11 23:48
铂金会员 发帖 1,827 积分 5,154
多重配置中,AUTOEXEC.BAT对config变量的引用会不会影响执行结果?
AUTOEXEC.BAT中:

折腾了一个晚上,最后发现:以下,运行MPXPLAY没有错误但无声(显示WSS)!(CONFIG.SYS中有启动选项,但肯定没有选 lan !!!)

path=c:\dos71;..
if %config%==lan goto lan

lh c:\dos71\shsucdx /d:dosnet
lh ctmouse

SET BLASTER=A220 I5 D1 T2
SET SNDSCAPE=C:\EAPCI
C:\EAPCI\APINIT

lh smartdrv

**********************
以下,运行MPXPLAY就有声(显示SBP)!
path=c:\dos71;..

lh c:\dos71\shsucdx /d:dosnet
lh ctmouse

if %config%==lan goto lan

SET BLASTER=A220 I5 D1 T2
SET SNDSCAPE=C:\EAPCI
C:\EAPCI\APINIT

lh smartdrv

[ Last edited by GOTOmsdos on 2006-4-15 at 00:28 ]
第2楼 Climbing 发表于 2006-04-12 09:10
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
话都没有说清楚。
第3楼 Wengier 发表于 2006-04-12 11:41
系统支持 发帖 10,521 积分 27,736
其它的程序呢?
第4楼 GOTOmsdos 发表于 2006-04-12 13:45
铂金会员 发帖 1,827 积分 5,154
试过 OPENCP 也一样, 可能 QV也一样
但玩游戏有声
因为肯定没有选 LAN ,所以 就会执行下一句.照理说, 执行结果是一样的
可是他就是不一样!
不知什么原因?
第5楼 xuantian 发表于 2006-04-12 16:38
高级用户 发帖 282 积分 587
就是不知所云,所以就没办法回复咯
第6楼 GOTOmsdos 发表于 2006-04-13 18:41
铂金会员 发帖 1,827 积分 5,154
不知所云?
Wengier 已经明白啦

就是 CONFIG.SYS中是多重配置(就是有多个启动选项),自然要在AUTOEXEC.BAT中用%CONFIG%变量来接收的嘛
前后代码的不同处就是 if %config%==lan goto lan 这句 的位置的不同
前者代码中是在前的,而后者代码中是在后的,其他的代码完全一样,省略了

关键就是此句:
if %config%==lan goto lan
如果选了 值为lan的选项,就会去 : lan 标签,否则就执行后一句
可以肯定,我没有选值为lan的选项! 这样的话,两种代码的执行结果应是一样的啊
换句话说,这两种代码"应该"都相当于"没有这一句"才对啊,
但是,结果却出人意料的不同!

有没有清楚了?

[ Last edited by GOTOmsdos on 2006-4-13 at 18:47 ]
第7楼 xuantian 发表于 2006-04-13 19:32
高级用户 发帖 282 积分 587
你的两段批处理本来就明显的不同,执行的效果自然是不会相同的
区别就在于:
if %config%==lan goto lan 这行后面的才会与config.sys交互,在此行前面的直接执行
第8楼 GOTOmsdos 发表于 2006-04-14 12:33
铂金会员 发帖 1,827 积分 5,154
但是我没有选LAN,就应该忽略这句呀,接者执行后一句嘛,...
无论哪种情况,都会执行:
lh c:\dos71\shsucdx /d:dosnet
lh ctmouse

有什么不一样呢?
第9楼 willsort 发表于 2006-04-14 16:57
元老会员 发帖 1,512 积分 4,432

───────────────── 版主提示 ─────────────────
由于原主题作者在约定时间内作出恰当回应,本提示现因失效已被删除
───────────────── 版主提示 ─────────────────


Re GOTOmsdos:

鉴于你身为论坛的“银牌会员”的资历,同时在线时间比较充足,特决定提前以上提示的通牒期限至明晨八点以前,逾时没有回复者除扣除相应积分外,我会考虑作出禁言三日的惩罚。

另外,你的问题我已理解。按常理推断,if语句很难影响内存的配置环境,因此应该不会对MPXPLAY的运行造成足够的影响。对此我只有两个建议:

一是二者运行环境并不仅仅是if位置的差别,可能有别的差别你未注意到。这需要贴出完整c/a文件对比和mem map才能得知;

二是这属于一种随机或伪随机现象,可能与硬件或者时间等因素有关。因此,仍需要认真细致的排除每一种可能。

[ Last edited by willsort on 2006-4-15 at 00:48 ]
第10楼 Climbing 发表于 2006-04-14 18:20
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
哈哈,惩罚够严厉的,不过我支持一下,嘿嘿~~~

回答的也很到位,我理解也是如此,应该跟if语句没有关系。
第11楼 xuantian 发表于 2006-04-14 18:55
高级用户 发帖 282 积分 587
我基本上不用批处理,啥方便用啥,不只限于DOS,但写启动文件还没有出过错:)

启动文件还是按标准的好
goto %config%
就不可能出问题
第12楼 GOTOmsdos 发表于 2006-04-15 00:26
铂金会员 发帖 1,827 积分 5,154
不好意思了,好吧, 有时遇到非常不解的问题,情绪一有点激动可能会忘记发贴原则了,我马上改标题

另,看到willsort兄的提示, 我再试试, 是不是有不同的配置情况(是不是弄错了?)
第13楼 GOTOmsdos 发表于 2006-04-15 00:52
铂金会员 发帖 1,827 积分 5,154
我不知说什么好了!
刚才又试了, 没问题了! 可是我当时连续试了不下5,6次,都是不一致!
就是只改动那一句,他就有问题,其他东西没有动啊....
不解中...
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023