Friday, December 5, 2014

windows - setting ERRORLEVEL to 0



What I have is a batch file that is a wrapper around an installer. This batch file checks the error level returned by the installer and prints accordingly. I noticed that if I execute set ERRORLEVEL=0 in a command prompt right before kicking off the batch file (in the same command window/environment), the installer never messes with the errorlevel and my batch script always returns passed. I would assume %ERRORLEVEL% is a variable defined by windows used specifically to print out errors from programs and scripts and that using the variable in a batch file or something else would be 'at your own risk' because it could be changed at any moment by another process. From what it seems like, when I set errorlevel in the given environment, it then somehow terminates the use of errorlevel as a holder of the exit code. Does anyone know why this is? To me its just weird unexpected behavior. Any information on the subject would be greatly appreciated!


Answer



You are redefining the system variable into a regular one. When you do this, the system will not use it until the command session is closed.



The best way would be to use





exit /b 0




in another batch file and call it from your primary script. Where the number 0 is your wanted errorlevel. Either that or use a command that resets the errorlevel for you, such as echo, findstr etc.



For example the following commands would all set ERRORLEVEL to 0 within your batch-file:



VERIFY > nul

cmd /c "exit /b 0"


ver > nul

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...