is there anything that mimicks a method like one knows it from Java, C# etc.? I have 5 lines of commands in a batch file, those 5 lines are used at more than one place inside the batch file. I can't use a goto, because depending on the errorlevel created by those 5 lines I have different actions that follow. I tried putting my 5 lines inside a batch file 5lines.bat, but the original batch file original.bat only calls 5lines.bat and doesn't execute the commands after the call to 5lines.bat ): That's how my original.bat looks like:
5lines.bat
echo this gets never called, how to make sure this gets called?
There's no exit or something like this in 5lines.bat! How can I make sure the line after 5lines.bat gets called?
You could try to use the examples listed on this page
Alternatively, you could put the common lines into another batch file that you call from the main one
You could use the call command :
And then define the function this way :
Source : Batch Functions
Solution:
Important to put EXIT /B at the end of each function, as well as before function definitions start, in my example this is:
EXIT /B %ERRORLEVEL%
Placing the reusable functions into a separate batch file would certainly work to simulate a function.
The catch is that you have to use the
call
command in order to ensure that control returns to the caller after the second batch file finishes executing.For another great tutorial on writing reusable batch file code -- see Richie Lawrence's excellent library.
I'm not sure if it was obvious from other answers but just to be explicit I'm posting this answer. I found other answers helpful in writing below code.