我使用了此线程中最佳答案中提供的代码:Need auto-restart script in batch for minecraft server
但是,我不确定选择函数应该何时运行。
此外,我宁愿没有选择。我希望服务器提前 60 秒提示它将重新启动,然后执行重新启动。
如有任何帮助,我们将不胜感激!
这是之前答案中的代码:
@echo off
title minecraft-server-1.8.3
color 0A
prompt [server]:
cls
:start
echo loading server...
java -Xms3G -Xmx3G -jar minecraft_server.1.8.3.jar nogui
cls
:choice
set /P a=do you want to restart[Y/N]?
if /I "%a%" EQU "Y" goto :restart
if /I "%a%" EQU "N" goto :stop
goto :choice
:restart
cls
echo server will restart
TIMEOUT /T 5
cls
goto :start
:stop
cls
echo closing server
TIMEOUT /T 5
exit
欢迎来到堆栈溢出。 正如 @Mofi 在评论中提到的,您可以使用 TIMEOUT 来创建等待语句 您可能想要的脚本如下所示:
:start
echo loading server...
java -Xms3G -Xmx3G -jar minecraft_server.1.8.3.jar nogui
cls
REM I recommend NOT using TIMEOUT /T for the main wait, this way you can skip it and initiate a restart immediately
TIMEOUT 10720
REM 3 hours minus 60 seconds to allow for 60 second restart notification
cls
echo server will restart
TIMEOUT /T 60
cls
goto :start
(因为你似乎对批处理有点陌生,所以使用 REM 来注释掉行)
回答关于为什么 :choice 部分是这样的问题: 它在 :start 部分之后启动,允许您 (Y) 重新启动或 (N) 停止服务器