我无法理解批处理的选择错误代码

I can't understand choice error codes of batch

如果我有这样的代码:

@echo off
choice /C BL /M "Clear screen or list actual directory"

if errorlevel 2 goto l
if errorlevel 1 goto b

:l
tree /f
goto final

:b
cls
goto final

:final

我知道这确实有效,但我对错误级别部分的一件事感到困惑。 我先写了,同样的代码,但是像这样:

if errorlevel 1 goto l
if errorlevel 2 goto b

这样它就不能正常工作它只会记住错误代码 1。如果你按第二个选项则不起作用。
我真的很想知道为什么错误的顺序很重要,如果一个批处理应该逐行执行,还是我错了?
简而言之,我想了解的是错误代码在这里是如何工作的

C:\>if /?
...
IF [NOT] ERRORLEVEL number command
...
ERRORLEVEL number   Specifies a true condition if the last program run returned
                    an exit code <em>equal to or greater than</em> the number specified.

换句话说,if errorlevel 1 执行任何错误级别(除了 0 = 无错误),因为它们都等于或大于 1。

提示一下,当使用附加到 goto 标签的 %errorlevel% 变量时,事情会很简单:

@echo off
choice /C BL /M "Clear screen or list actual directory"
goto :choice%errorlevel%

:choice1 B
tree /f
goto final

:choice2 L
cls
goto final

:final
pause