20秒后自动进行选择

时间:2015-04-05 17:38:02

标签: batch-file server restart

我为我的Minecraft服务器制作了自定义启动脚本,因此我可以使用更多RAM。 停止服务器时,它会询问您是否要重新启动或是否要停止。 如果你在20秒后没有回答,我无法自动重启它 (在崩溃的情况下)。请帮忙。

@echo off
title minecraft-server-1.8.3
color 0A
prompt [server]:
cls

:start                                          //starts the server
echo loading server...
java -Xms3G -Xmx3G -jar minecraft_server.1.8.3.jar nogui 
cls

[code to restart the server when it didn't get an anwser in 20sec]

:choice                                         //what to do when 
set /P a=do you want to restart[Y/N]?             the server stops
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

1 个答案:

答案 0 :(得分:2)

而不是set /p使用choice

choice /c YN /t 20 /d Y /m "Do you want to restart "
  • /c YN说明了答案集(Y或N,顺便说一下,不区分大小写)。
  • /t 20表示超时为20秒。
  • /d Y表示超时到期后的默认答案Y.
  • /m "..."说明提示。

choiceerrorlevel设置为输入的索引(Y:1,N:2),以检查用户输入的使用情况:

if %errorlevel% equ 1 goto :restart
if %errorlevel% equ 2 goto :stop

您可以在http://ss64.com/nt/choice.htmlchoice

找到有关choice/?的更多信息