@echo off
setlocal ENABLEDELAYEDEXPANSION
Set Process=java
tasklist | Find /i "%Process%.exe" || (goto Else)
:THEN
Exit
Goto end
:ELSE
C:\Java\jre1.8.0_31\bin\java.exe -Xmx1400M -Xms1400M -jar cauldron-1.7.10-1.1272.06.215-server.jar nogui
pause
-------------------------------------------------------------------------------------------
Собственно вот и проблема: ":start" и "goto start" лишние, на счет первого - это запуск параметра "старт" которому присвоено значение "java -Xincgc -Xmx5G -Dfile.encoding=UTF-8 -jar cauldron-1.7.10-1.1272.06.215-server.jar", а второе это (из вики чтоб понятнее)
goto (от
англ.go to — «перейти на») — оператор безусловного перехода. В общем когда ты завершаешь сервер, батник переходит к следующей комманде которая в свою очередь заного запускает сервер.
В моей версии это примерно так (есть просто некоторая необходимость) - при старте батника проверяется наличие процесса джавы, если есть то ничего не делать, далее завершаем батник, иначе запускаем джаву
и последнее пауза, что бы сервер не вырубился
----------------------------------------------------------------------------------------------------
а в оригинале (до того как появилась потребность проверки процесса) было так :
@echo off
C:\Java\jre1.8.0_31\bin\java.exe -Xmx1400M -Xms1400M -jar cauldron-1.7.10-1.1272.06.215-server.jar nogui
pause
т.е. без всяких переменных и переходов