Seems the negative value is not standard in Windows. I have found this
Where error levels are explained :
FIND: 0 found, 1 none found, 2 search not completed
CHKDSK: 0 drive okay, 255 any error
CHOICE: 0 if aborted, 255 on error, choice value otherwise
DEFRAG: 0 success, 1 internal error, 2 disk too full to defrag, 3 aborted by user, 4 general error, 5 read error, 6 write error, 7 FAT allocation error, 8 "memory error", 9 out of memory
DELTREE: 0 success, 1 error
DISKCOMP: 0 disks are the same, 1 differences found, 2 user aborted with ^C, 3 critical error abort, 4 initialization error (e.g. no such drive?)
DISKCOPY: 0 success, 1 non-fatal r/w error, 2 user aborted with ^C, 3 critical error abort, 4 initialization error
FORMAT: 0 success, 3 user aborted with ^C, 5 user did not confirm, 4/others signal various fatal errors.
KEYB: 0 success, 1 invalid keycode/charset/syntax, 2 keyboard definition file bad or missing, 4 error when communicating with keyboard or monitor, 5 requested charset has not been prepared.
MSAV: 86 virus found
REPLACE: 0 success, 1 wrong DOS version, 2 source files not found, 3 source or dest. path not found, 5 could not replace files (access violation), 8 not enough memory, 11 syntax error.
RESTORE: 0 success, 1 files not found, 3 aborted by ^C, 4 aborted with error
SCANDISK: 0 disk okay, 1 syntax error, 2 unexpected out of memory error, 3 aborted by user, 4 all logical checks but not all surface scans done (unless command line option already told to skip surface scan alltogether), 254 errors found but corrected, 255 errors found but not all corrected.
SETVER: 0 success, 1 syntax error, 2 file not found, 3 out of memory, 4 invalid version number format, 5 entry in version table not found, 6 setver binary not found, 7 invalid drive, 8 too many command line args, 9 missing command line parameters, 10 error reading setver binary, 11 setver binary corrupt, 12 setver binary has no version table, 13 version tible full, 14 error writing the changed binary.
XCOPY: 0 success, 1 no files found to copy, 2 aborted by ^C, 4 initialization error (not enough memory or disk space, invalid drive, or syntax error), 5 disk write error.
The same system of zero meaning no error and different positive values for different errors seem to apply throughout command line programs. You may want to try the same.