Board logo

标题: [已解决]dos多个相同变量数值不同无法替换? [打印本页]

作者: semenyung     时间: 2009-4-13 00:19    标题: [已解决]dos多个相同变量数值不同无法替换?
执行dos的时候,出现多个%cdrom%变量,无法替换。
用set查看可以看见:
cdrom=d
cdrom=1
设置一个新的数值的时候,前面一个消失,但依然有两个cdrom

config配置如下:
DEVICEHIGH=A:\HIMEM.SYS /testmem:off
DEVICEHIGH=A:\RAMDRIVE.SYS /E 4096


files=20
buffers=30
dos=high,umb
stacks=9,256
lastdrive=z
SWITCHES=/N /F

autoexec配置:
@ECHO OFF
PROMPT $P$G
SET DIRCMD=/O:N
SET COMSPEC=A:\COMMAND.COM
SET LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
SET LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
CALL setramd.bat %LglDrv%
CLS
SET LglDrv=
SET PATH=%RAMD%:\;A:\;A:\HD;A:\PQ;A:\NTFS;A:\DM;A:\1K
LH A:\DOSKEY.COM>NUL
CALL A:\CDROM.BAT
copy a:\command.com %RAMD%:\>nul
set comspec=%RAMD%:\command.com
SET TEMP=%RAMD%:
SET TMP=%RAMD%:

bcdw FindBootableCDLetter
IF errorlevel 1 goto XM
prompt CD=%bcdw_cdrom%:_RAM=%RAMD%:_$p$g
path=%PATH%;%bcdw_cdrom%:\
%bcdw_cdrom%:
BCDW GetBootImageCommandLine
IF errorlevel 1 goto END
CALL %bcdw_cl%
GOTO EXIT

:XM
CALL A:\ALLCD.BAT
GOTO END

:END
A:\H.BAT

:EXIT


不知道哪里弄错了,出现这个情况,请大家帮忙分析下!谢谢!

Last edited by semenyung on 2009-4-14 at 04:47 ]

作者: DOSforever     时间: 2009-4-13 09:54
Originally posted by semenyung at 2009-4-13 00:19:
执行dos的时候,出现多个%cdrom%变量,无法替换。
用set查看可以看见:
cdrom=d
cdrom=1
设置一个新的数值的时候,前面一个消失,但依然有两个cdrom

...

同一个环境变量能有两个值?允许存在两个相同名的环境变量?如果不是亲眼所见还真不敢相信。

作者: semenyung     时间: 2009-4-14 04:32
我也很郁闷,只好调用allcd.bat的时候先把cdrom变量清空再说。
set cdrom=
set cdrom=

估计和其他关联变量有关,比如设置
set bcdw_cdrom=%cdrom%

生成新的cdrom变量时原来的值还是被%bcdw_cdrom%引用,所以同时出现两个%cdrom%

Last edited by semenyung on 2009-4-14 at 04:45 ]