dos命令返回值问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:41:48
使用引导光盘进DOS系统后,然后执行一个批处理,内容为:
format e:/q <y.txt
if errorlevel 1 goto err
goto end
:err
echo error! >err.txt
:end
注意:我的硬盘没有E盘
执行的结果为:
d:\>format e: /q <y.txt
Invalid drive specification
d:\>if errorlevel 1 goto err
这行确没跳转,直接执行下面一行啦
d:\>goto end

以上如果将:if errorlevel goto err 改为:echo %errorlevel%
结果为:ECHO is on
此行echo %errorlevel%
返回值应为数字吧?

DOS里面的返回值在通常情况是都是0(成功)和1(失败)
但是问题就是,成功和失败是相对的,并不像程序语言那样能在一个具体的地方进行判断,因此,DOS里面的返回值并非就完全能判断。

如果你将if errorlevel 1 goto err 这句判断语句修改为echo %errorlevel%
的话,那么你当然看到的是%errorlevel% 这个值,因为他执行这句以后就直接由goto 语句跳转到:end了。

是的 返回值只有0 1 2 一般都是0和1。

echo只是将后面的内容送入系统显示缓冲区,没有返回值