• Great tip!

    One change is needed in my opinion though:

    SET /A ERRLEV = "(%ERRLEV1% & %ERRLEV2%) & 24"

    Should be "(%ERRLEV1% | %ERRLEV2%) & 24"

    (untested)

    Otherwise you'll miss error code(s) in cases when e.g.

    ERRLEV1=8 and ERRLEV2=16

    or

    ERRLEV1=24 and ERRLEV2=0

    Edit:

    Hope this example illustrates my point:

    select (8 & 16) & 24 as errorcode_lost

    select (8 | 16) & 24 as errorcode_active

    select (0 | 16) & 24 as errorcode_active

    select (8 | 8) & 24 as errorcode_active

    select (5 | 6) & 24 as no_errorcode

    select (0 | 0) & 24 as no_errorcode