赞
踩
3 个答案:
答案 0 :(得分:2)
我使用它但是如果你想让它自动重启它,那么只需删除:choise部分并从开始到重新启动循环


@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


PS。将minecraft_server.1.8.3.jar替换为您的服务器文件名称
答案 1 :(得分:1)
解决方案1:
我建议使用Windows任务调度程序而不是批处理文件。在那里,您可以创建一个任务,安排它在上午12点/下午触发,并插入您想要执行的任何cmd命令。但是,在不知道特定接口或如何管理Minecraft服务器的情况下与服务器控制台进行通信是非常重要的。你可以做的就是杀死服务器并使用命令行重新启动它。
解决方案2:
如果您不喜欢此解决方案并且不知道如何与服务器控制台通信,则可以尝试以下操作:
看看AutoIt(https://www.autoitscript.com/site/)。它是一种非常简单的脚本语言,也可以模拟键盘的点击和输入。因此,您可以编写一个脚本,将焦点设置到服务器控制台,并键入所需的命令以重新启动服务器。可以将此AutoIt脚本编译为exe文件,也可以将其作为au3脚本运行。
您仍应使用任务计划程序在上午12点/下午运行您的exe /脚本。
如果您需要一些帮助来编写AutoIt脚本,我可以帮助您。
答案 2 :(得分:0)
我为AutoIt中的朋友写了一个类似的程序,这里的脚本我评论了你需要配置的行:
HotKeySet("{ESC}", end)
HotKeySet("{F1}", start) ;optional
HotKeySet("{F2}", pause) ;optional
pause() ; starts the pause loop when started
; restarts the server all 12 hours
Func start()
$Path = "PathToYourBatch.bat" ; self explained
While 1
If @HOUR = 00 Or @HOUR = 12 Then ;starts the server at 00 and 12
Run($Path)
EndIf
WEnd
EndFunc
Func pause()
While 1
Sleep(500) ; waits 500 ms to reduce lag
WEnd
EndFunc
Func end()
Exit
EndFunc
您不需要使用热键,但您可以使用它们轻松控制程序(远程桌面)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。