所以,我想为我的Minecraft服务器创建一个批处理文件来启动,然后在每天结束时重启服务器(午夜,最好是24小时也适用)
这是我的启动批处理,它调用其他批处理文件来打开并单独启动服务器:
start cmd /k call BungeeStartup.bat
start cmd /k call HUBStartup.bat
start cmd /k call PvEStartup.bat
start cmd /k call PvPStartup.bat
start cmd /k call MinigamesStartup.bat
start cmd /k call TownyStartup.bat
start cmd /k call SecQStartup.bat
每个“Startup.bat”调用运行服务器,如下所示:
D:
cd Minecraft 1.12 Server Files
cd BungeeCord <-- and each it's respective server, of course, so I don't have to type it all out again
RUNGEE.bat
最后,RUN.bat文件如下所示:
java -jar -Xmx350M spigot-1.12.2.jar -o true
这会在不同的命令提示符中启动所有服务器。但问题是,没有办法(我知道)用这个来结束服务器而没有我手动输入/停止到每个命令提示服务器,然后再次'退出'进入每个命令提示符退出它。然后我也手动重新执行批处理文件。
所以,我的问题是:
- 我如何(使用批处理文件)结束每个服务器,然后是每个命令提示符窗口,而不是手动执行
- 如何在退出后自动重新启动它们。
- 以及如何每24小时(或者,最好是每晚午夜)特别定期发生这种情况
编辑:
因此,为了澄清Minecraft服务器的工作原理,我正在添加此编辑。
当你启动服务器时,显然它运行服务器,所有人和人都可以连接和播放。它有一个命令提示符,您可以使用它来执行命令并查看信息以及所有这些信息。为了正确关闭服务器以保存所有内容并且不损坏文件,您可以在命令提示符下键入“stop”。然后它退出服务器并通常会退出命令提示符,让您按意愿重新打开。然后,使用我设置的批处理文件,它不只是在输入“stop”后退出命令提示符,它会返回到您继续使用命令提示符的目录,就好像它不再运行服务器一样(因为它不是),你必须输入'exit'来关闭命令提示符。
timeout /t %StartPauseSec%
行,你可以将它::timeout /t %StartPauseSec%
评论出来,然后在没有它的情况下运行,看看它是否可以正常运行。如果它有效,那么您也可以删除或注释掉该::SET StartPauseSec=10
行。我无法完全测试这些过程,但是对于某些事情有一个小的等待时间永远不会伤害,并且通常总是帮助我使用这些类型的解决方案自动化的东西,但我没有Mine Craft服务器在我身边完全测试。