|It's not a good idea to use variables and/or labels that are native commands or programs to the OS (such as command and goto). I'm afraid you'll just end up confusing the interpreter and end up with bizarre, unexpected, and undesireable results.|
What am I supposed to do there to check if the entered program exists "start ____" or if the section exists "goto ____" ?
You'll need to parse what the user has input, and pass anything after "start" to the Find_Program subroutine I provided, and pass anything after "goto" to something similar to this:
CALL :%command% 2>NUL || ECHO Label %command% not found
The CALL command is a bit more tolerant of missing labels than the GOTO command.
When your only tool is a hammer, every problem looks like a nail.