我们的脚本中有一些错误处理设置如下所示:
set ret = %ERRORLEVEL%
if %ERRORLEVEL% == 0 GOTO PPCOK
if not %ret% == 0 GOTO ERROR1
其他人写了上述内容,但我对它实际上正常工作有一些担忧。
我已经读过,如果你检查ERRORLEVEL = 0,它实际上是检查errorlevel是0还是更高。我的假设是它总是会转到PPCOK标签上?
此外,网上大多数示例使用“IF ERRORLEVEL 1”或某些显示“IF%ERRORLEVEL%EQU 1”及以上使用“IF%ERRORLEVEL%== 0”我想知道是否有效选择使用这三种方法中的哪一种的情况呢?
在旁注中我不确定为什么他们将errorlevel存储在另一个变量中并在第二个if语句中使用它而不是仅仅执行另一个IF NOT%ERRORLEVEL%...
答案 0 :(得分:0)
批处理对SET
语句中的空格敏感。 SET FLAG = N
将名为“FLAG Space ”的变量设置为值“ Space N”
IF ERRORLEVEL n
为n 或大于n ,则 errorlevel
为TRUE。因此IF ERRORLEVEL 0
总是如此。 IF NOT ERRORLEVEL 1
是对errorlevel = 0的测试。 IF %ERRORLEVEL%==0
也是如此,前者可以在一个区块中使用,但后者不能。