eof es una etiqueta "especial", significa "END of FILE" y sirve para salir de un ámbito, yo lo utilizo para salir de un "ámbito de etiqueta" y así volver a donde fue llamada la función, también sirve para salir del archivo.
Ejemplo:
rem Supongamos que quiero llamar a la etiqueta "hola" y quiero que regrese!, no que se siga con las demás etiquetas:
:hola
:adios
Y la salida del batch da:
C:\Users\leo>code.cmd
Hola mundo!
Adios!
Bye
Hola mundo!
Adios!
C:\Users\leo>
No pasa lo que yo quiero, pero si agrego goto:eof a las etiquetas:
C:\Users\leo>code.cmd
Hola mundo!
Bye
C:\Users\leo>
Ahora sí pasa lo que quiero, porque se llama a :hola, y luego regresa a donde fue llamado, y luego sale por el goto:eof después del call.
Saludos.