You can achieve what you want with an EAB.
Use C code:
CreateProcess() to run the batch file
followed by:
WaitForSingleObject() to wait for the process to finish
and
GetExitCodeProcess() to check the return code from the batch file.
You mention running the batch file in a separate thread., but this should not be necessary if you are waiting for it. You would only want to create a separate thread if you also want to process some other code whilst the batch file is running.