You may want to put an exit before ':builderror' as of now it will display that even without an error.
Another thing, if it errors on the 2nd 'rd' the first time you run, it will always error, as the first 'rd's target is gone. I don't know if you wanted to do that or not.
for /f "tokens=2,3" %%a in (' SYSTEMINFO ^|find /i "broadcom" ') do set "var=%%b"
::If var is empty then there were no tokens found
if "%var%"=="" goto builderror
and I do believe you need an opening '(' after "do" if you plan on including other stuff in your for loop.