2013-05-06 122 views
2

所以基本上我想要做的是启动Bukkit服务器并修改了ram的使用情况,并设置了批处理脚本,这样当服务器停止时,它会在批处理文件的开头重新启动,但有一个带有定时默认选项的菜单,可自动重新启动服务器。第二个选项将允许我中断批处理文件,以防止服务器在停止后再次启动。Bukkit服务器启动批处理文件循环

我想要什么,启动脚本是这样的:"C:\program files\Java\jre7\bin\java.exe" -Xincgc -Xmx4G -jar "craftbukkit.jar"

所以基本上有一个菜单是这样的: press 1 to start bukkit, press 2 to exit the script.

选项一会定时自动启动。

我能够得到那么远的菜单,并且它会自动启动它,但是当我在Bukkit中发出停止命令后,它只是退出,我无法弄清楚如何让它在脚本的开始。

这里是工作的菜单,而不是首发回到起点一旦程序结束,

:start 
choice /c:CN /n /m "bukkit will start in 5 seconds. Press to restart Now, or C to exit" /t:5 /d:N 
if errorlevel 2 ("C:\program files\Java\jre7\bin\java.exe" -Xincgc -Xmx4G -jar "craftbukkit.jar" ) else goto start 

但我原来的剧本是这样的,它在程序退出后暂停窗口:

"C:\program files\Java\jre7\bin\java.exe" -Xincgc -Xmx4G -jar "craftbukkit.jar" 
pause 

我记得在Windows XP下能够做到这一点,autoexec.bat,当菜单选项完成后,它会返回菜单。

任何帮助,将不胜感激。

回答

3

请暂停后放置此代码。

GOTO start 

我有一个批处理文件类似于这个,我用它来自动重启服务器,如果/当它崩溃。我也用它来快速从游戏中重新开始。

请看:

@ECHO OFF 
title Bukkit 
color A 
:start 
IF /I "%PROCESSOR_ARCHITECTURE:~-2%"=="64" "%ProgramFiles(x86)%\Java\jre7\bin\java.exe" -Xincgc -Xmx1024M -jar "bukkit.jar" nogui 
IF /I "%PROCESSOR_ARCHITECTURE:~-2%"=="86" java -Xincgc -Xmx1024M -jar "bukkit.jar" nogui 
goto start 
+1

真棒这样的作品,现在我面前的第一个if语句,这alllows我用CTRL + C超时期间停止该批处理文件添加'超时5'。 – B4wii 2013-05-06 18:54:41

+0

另外,看你的处理器架构的代码,你有文件目录错误的64位Java,假设他们正在运行64位Java,这是reccomended,它会在程序文件而不是x86程序文件。 – B4wii 2013-05-06 20:01:53

+0

在这种情况下,我使用的是32位Java。 – Alice 2013-05-06 22:30:40