Originally posted by vk at 2007-4-11 07:22 PM:
三楼的说法 我觉得有几个问题
1命令返回状态值排序应该是从大到小吧
2你举的例子
之所以会执行echo a和echo b
因为if errorlevel 0 echo a
这句语句按我 ...
看来一知半解的不是我,是你了
返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:
if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
...
在IF的教程中是这样的
if errorlevel / if not errorlevel 数字 待执行的命令
如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。
绝对不是你说的返回值≥0就运行,这里返回码不是单纯的数字,而是代码
你可以改写我的代码为以下形式来测试,没有任何影响的。
@echo off
find "3" 1.txt
if errorlevel 2 echo a
if errorlevel 1 echo b
if errorlevel 0 echo c
pause
活学活用吧,切不可成死套死用。