These 5 lines will cause an error, there is no command
IF %M%==5
IF %M%==6
IF %M%==7
IF %M%==8
The labels on these lines don't exist, so they will cause a fatal error, and the S variable is never defined. Probably a typo, should be M.
IF %S%==S GOTO Settings
IF %M%==0 GOTO EXIT
If you want to exit, that line should be:
IF %M%==0 EXIT
Or you can use the predefined label :EOF
IF %M%==0 GOTO :EOF
You should clear the variable before the Set /P statement, otherwise if someone just presses enter, the previous choice will be used. And quote both sides, otherwise if someone just presses Enter the first time around, you'll get an error.
SET M=
SET /P M=Type the option # then press ENTER:
IF "%M%"=="1" GOTO Vanilla
IF "%M%"=="2" GOTO Bukkit
IF "%M%"=="3" GOTO Tekkit
IF "%M%"=="4" GOTO HackMine
IF "%M%"=="C" GOTO Client
IF "%M%"=="S" GOTO Settings
IF "%M%"=="0" GOTO EXIT