------------------------------------------------------------
@Echo Off
For %%i in (5 4 3 2 1 0) do if ErrorLevel 25%%i Echo ErrorLevel: 25%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 24%%i Echo ErrorLevel: 24%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 23%%i Echo ErrorLevel: 23%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 22%%i Echo ErrorLevel: 22%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 21%%i Echo ErrorLevel: 21%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 20%%i Echo ErrorLevel: 20%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 19%%i Echo ErrorLevel: 19%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 18%%i Echo ErrorLevel: 18%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 17%%i Echo ErrorLevel: 17%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 16%%i Echo ErrorLevel: 16%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 15%%i Echo ErrorLevel: 15%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 14%%i Echo ErrorLevel: 14%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 13%%i Echo ErrorLevel: 13%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 12%%i Echo ErrorLevel: 12%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 11%%i Echo ErrorLevel: 11%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 10%%i Echo ErrorLevel: 10%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 9%%i Echo ErrorLevel: 9%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 8%%i Echo ErrorLevel: 8%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 7%%i Echo ErrorLevel: 7%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 6%%i Echo ErrorLevel: 6%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 5%%i Echo ErrorLevel: 5%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 4%%i Echo ErrorLevel: 4%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 3%%i Echo ErrorLevel: 3%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 2%%i Echo ErrorLevel: 2%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel 1%%i Echo ErrorLevel: 1%%i
For %%i in (9 8 7 6 5 4 3 2 1 0) do if ErrorLevel %%i Echo ErrorLevel: %%i
@ECHO OFF
REM Reset variables
FOR %%A IN (1 10 100) DO SET ERR%%A=
REM Check error level hundredfolds
FOR %%A IN (0 1 2) DO IF ERRORLEVEL %%A00 SET ERR100=%%A
IF %ERR100%==2 GOTO 200
IF %ERR100%==0 IF NOT "%1"=="/0" SET ERR100=
REM Check error level tenfolds
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%%A0 SET ERR10=%%A
IF "%ERR100%"=="" IF %ERR10%==0 SET ERR10=
:1
REM Check error level units
FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
REM Modification necessary for errorlevels 250+
IF NOT ERRORLEVEL 250 FOR %%A IN (6 7 8 9) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
GOTO End
:200
REM In case of error levels over 200 both
REM tenfolds and units are limited to 5
REM since the highest DOS error level is 255
FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL 2%%A0 SET ERR10=%%A
IF ERR10==5 FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL 25%%A SET ERR1=%%A
IF NOT ERR10==5 GOTO 1
:End
REM Clean up the mess and show results
SET ERRORLEV=%ERR100%%ERR10%%ERR1%
FOR %%A IN (1 10 100) DO SET ERR%%A=
ECHO ERRORLEVEL %ERRORLEV%
:: 检查 ERRORLEVEL 的百位值
FOR %%A IN (0 1 2) DO IF ERRORLEVEL %%A00 SET ERR100=%%A
:: 是否显示 0 前导符
IF %ERR100%==0 IF NOT "%1"=="/0" SET ERR100=
:: 检查 ERRORLEVEL 的十位值
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%%A0 SET ERR10=%%A
:: 是否显示 0 前导符
IF "%ERR100%"=="" IF %ERR10%==0 SET ERR10=
:: 检查 ERRORLEVEL 的个位值
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
:: 设置结果
SET ERRORLEV=%ERR100%%ERR10%%ERR1%
:: 限制 ERRORLEV 最大为 255
IF ERRORLEVEL 255 SET ERRORLEV=255
:: 清理临时变量
FOR %%A IN (1 10 100) DO SET ERR%%A=
:: 显示结果
ECHO ERRORLEVEL %ERRORLEV%
:: 检查 ERRORLEVEL 的百位值
FOR %%A IN (0 1 2) DO IF ERRORLEVEL %%A00 SET ERR100=%%A
:: 是否显示 0 前导符
IF "%ERR100%"=="0" IF NOT "%1"=="/0" SET ERR100=
:: 检查 ERRORLEVEL 的十位值
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%%A0 SET ERR10=%%A
:: 是否显示 0 前导符
IF "%ERR100%"=="" IF "%ERR10%"=="0" SET ERR10=
:: 检查 ERRORLEVEL 的个位值
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
:: 设置结果
SET ERRORLEV=%ERR100%%ERR10%%ERR1%
:: 限制 ERRORLEV 最大为 255
IF ERRORLEVEL 255 SET ERRORLEV=255
:: 清理临时变量
FOR %%A IN (1 10 100) DO SET ERR%%A=
:: 显示结果
ECHO ERRORLEVEL %ERRORLEV% :: 退出
GOTO QUIT
------------------------------------------------------------
@ECHO OFF
IF NOT "%ERRORLEVEL%"=="" GOTO XP
:: 复位临时变量
FOR %%A IN (1 10 100) DO SET ERR%%A=
:: 检查 ERRORLEVEL 的百位值
FOR %%A IN (0 1 2) DO IF ERRORLEVEL %%A00 SET ERR100=%%A
:: 判断百位是否超过 200,另行处理
IF "%ERR100%"=="2" GOTO 200
:: 是否显示 0 前导符(通过参数判断)
IF "%ERR100%"=="0" IF NOT "%1"=="/0" SET ERR100=
:: 检查 ERRORLEVEL 的十位值
FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %ERR100%%%A0 SET ERR10=%%A
:: 是否显示 0 前导符(通过百位是否为空判断)
IF "%ERR100%"=="" IF %ERR10%==0 SET ERR10=
:1
:: 检查 ERRORLEVEL 的个位值
FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
:: 检查 小于 250 的情况下的个位值(这里似乎不用判断 250 也可以,下面判断过了)
IF NOT ERRORLEVEL 250 FOR %%A IN (6 7 8 9) DO IF ERRORLEVEL %ERR100%%ERR10%%%A SET ERR1=%%A
GOTO END
:200
:: 当 ERRORLEVEL 大于 200 时的十位值
FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL 2%%A0 SET ERR10=%%A
:: 当 ERRORLEVEL 大于 250 时的个位值
IF ERR10==5 FOR %%A IN (0 1 2 3 4 5) DO IF ERRORLEVEL 25%%A SET ERR1=%%A
:: 当 ERRORLEVEL 小于 250 时的个位值
IF NOT ERR10==5 GOTO 1
:END
:: 设置结果
SET ERRORLEV=%ERR100%%ERR10%%ERR1%
:: 清理临时变量
FOR %%A IN (1 10 100) DO SET ERR%%A=
:: 显示结果
ECHO ERRORLEVEL %ERRORLEV%
:: 清理结果变量
SET ERRORLEV=
:: 退出
GOTO QUIT