I’m trying to conditionally run an exe from a batch file conditionally upon another exe executing successfully.
I’ve tried a few different combinations of IF and ERRORLEVEL but none seem to work
"..\..\..\TeamBuildTypes\Current Branch\DatabaseUpdate.exe" -s localhost\sql2008r2
IF %ERRORLEVEL% 1(
"..\..\..\TeamBuildTypes\Current Branch\DatabaseUpdate.exe" -s localhost\sql2008
)
Pause
Gives me the error
1( was unexpected at this time.
Where am I going wrong here?
IF ERRORLEVEL ...is a special syntax supported since the DOS days, the%ERRORLEVEL%variable support was added in WinNT.The original syntax is used like this:
To use the variable, use the normal IF syntax:
if %errorlevel%==0 echo success...Note that
%errorlevel%stops working if someone doesset errorlevel=fooand it might not get updated for internal cmd.exe commands.An alternative solution is to use
&&:There are (at least) two known cases where errorlevel is broken and you must use
||instead:RD/RMDir>file redirection