问题是这样引起的。
看见别人写了个判断 光盘的例子
for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do if exist %%i\WIN51 set CDROM=%%i
上边的方法很简单, 但有个问题,就是当光驱中没有光盘的时候,会弹出错误信息,然后后边的命令就无法执行, 更糟糕的是, 如果有双光驱, 光盘在第2个光驱的时候, 根本就无法得到结果, 因为第一个光驱读不出, 第2个光驱无法检测。
于是我利用 Dready 这个小程序, 这个小程序用法是 Dready /w, 返回 errorlevel 0,1,2,255, 如果返回1, 表示是 Readonly, 也就是表示这个是光驱, 并且准备好了。
我改了下程序
for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do Dready %%i &if errorlevel 1 echo %%i>>cdrom.txt
我的设想是先检测出可读的光驱到临时文件中,然后再次用 For 命令检测光驱中文件 WIN51, 第2步 很容易编, 问题就出在上边的第一步。
cdrom.txt 文件的结果不是我希望的, 因为errorlevel 的值一直是检测最后一个光驱的值, 我想这就是延迟变量的问题。
于是我在程序中 加入 setlocal ENABLEDELAYEDEXPANSION
并使用 !errorlevel! 代替 %errorlevel %, 但实际发现 !errorlevel!不是一个数值, 而是 !errorlevel!本身
最后我简单编了个 程序如下:
setlocal ENABLEDELAYEDEXPANSION
set test="No problem"
echo !test!
实际运行结果不是 No probelm, 而是 !test!, 这是怎么回事??
我照抄例子的时候是对的, 我自己编却错,而且也不是 !全角半角的问题,这点知识我还是有的。
我为了避免错误, 很多句子是拷贝的, 只是 set=xxx 的自己写, 可是就是错误, 我想不通了。
请大家帮帮我, 谢谢!
[ Last edited by quya on 2008-5-29 at 12:41 PM ]
看见别人写了个判断 光盘的例子
for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do if exist %%i\WIN51 set CDROM=%%i
上边的方法很简单, 但有个问题,就是当光驱中没有光盘的时候,会弹出错误信息,然后后边的命令就无法执行, 更糟糕的是, 如果有双光驱, 光盘在第2个光驱的时候, 根本就无法得到结果, 因为第一个光驱读不出, 第2个光驱无法检测。
于是我利用 Dready 这个小程序, 这个小程序用法是 Dready /w, 返回 errorlevel 0,1,2,255, 如果返回1, 表示是 Readonly, 也就是表示这个是光驱, 并且准备好了。
我改了下程序
for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do Dready %%i &if errorlevel 1 echo %%i>>cdrom.txt
我的设想是先检测出可读的光驱到临时文件中,然后再次用 For 命令检测光驱中文件 WIN51, 第2步 很容易编, 问题就出在上边的第一步。
cdrom.txt 文件的结果不是我希望的, 因为errorlevel 的值一直是检测最后一个光驱的值, 我想这就是延迟变量的问题。
于是我在程序中 加入 setlocal ENABLEDELAYEDEXPANSION
并使用 !errorlevel! 代替 %errorlevel %, 但实际发现 !errorlevel!不是一个数值, 而是 !errorlevel!本身
最后我简单编了个 程序如下:
setlocal ENABLEDELAYEDEXPANSION
set test="No problem"
echo !test!
实际运行结果不是 No probelm, 而是 !test!, 这是怎么回事??
我照抄例子的时候是对的, 我自己编却错,而且也不是 !全角半角的问题,这点知识我还是有的。
我为了避免错误, 很多句子是拷贝的, 只是 set=xxx 的自己写, 可是就是错误, 我想不通了。
请大家帮帮我, 谢谢!
[ Last edited by quya on 2008-5-29 at 12:41 PM ]
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.

