Jeje no necesitas hacer todo eso.. un menu se hace asi:
Con esto queda mejor, porque no muestra ningun mensaje de error, sino que no hace nada.
Lo de set "opcion=" es para que las siguientes veces que vuelva al menu, se borre el contenido de %opcion% para que si el usuario pone enter sin escribir nada, no vaya a donde fue la vez anterior.
Código (dos) [Seleccionar]
:menu
cls
echo+
echo+
echo 1.- Ver datos de autor.
echo 2.- Mirar mensaje.
echo 3.- Salir del programa.
echo+
echo+
set "opcion="
set /p "opcion= elija a donde desea ir: "
if not defined opcion (goto menu)
if %opcion%==1 (goto :autor)
if %opcion%==2 (goto :mensaje)
if %opcion%==3 (goto :salir)
goto :menu
Con esto queda mejor, porque no muestra ningun mensaje de error, sino que no hace nada.
Lo de set "opcion=" es para que las siguientes veces que vuelva al menu, se borre el contenido de %opcion% para que si el usuario pone enter sin escribir nada, no vaya a donde fue la vez anterior.