2014-10-08 63 views
3

我目前是私人Minecraft服务器上的管理员,但在这种情况下,技术问题不在典型的我的世界范围。批处理需要自动重启脚本,用于我的世界服务器

我希望在上午12点和下午12点启动服务器重启的批处理文件,尽管我在批处理方面没有多少经验,粗略的谷歌搜索没有任何帮助。

我碰到的问题是,我不知道批处理CAN是否在java服务器控制台内执行命令,发送命令以保存服务器然后退出并重新启动本身,因为只知道基本的批处理函数。

更具体地说,我希望批处理文件本身在43200秒之后或在每个12秒之后在服务器窗口中运行命令,然后重新启动。我不知道如何获得批处理文件在服务器命令行中运行命令,或者甚至可能。

当前批次代码如下:

@echo off 
:Minecraft 
echo (%time%) Minecraft started. 
java -Xms2048m -Xmx2048m -XX:PermSize=128m -jar FTBServer-1.6.4-965.jar nogui 
pause 
echo (%time%) WARNING: Minecraft closed or crashed, restarting. 
ping 1.1.1.1 -n 1 -w 3000 >nul 
goto Minecraft 

任何帮助将aprreciated。谢谢。

回答

1

解决方案1: 我建议使用Windows任务计划程序而不是批处理文件。在那里你可以创建一个任务,安排它在上午12点/下午触发,并插入你想要执行的任何cmd命令。但是,在不知道具体接口或如何管理Minecraft服务器的情况下与服务器控制台通信并不重要。你可以做的只是杀死服务器并使用命令行重启它。

解决方案2: 如果你不喜欢这种解决方案,不知道如何与服务器控制台,你可以试试这个通信: 看看的AutoIt(https://www.autoitscript.com/site/)。这是一个非常简单的脚本语言,它也可以模拟键盘上的点击和输入。因此,您可以编写一个脚本,将焦点设置到您的服务器控制台,并键入所需的命令以重新启动服务器。这个AutoIt脚本可以编译成exe文件,或者你可以将它作为au3脚本运行。 您应该仍然使用任务计划程序在上午12点/下午运行您的exe /脚本。

如果您在编写AutoIt脚本时需要一些帮助,我可以帮您解决这个问题。

+0

不完全是我想听到的,但感谢在任何情况下的帮助。我的限制要求所有这些都在服务器盒子的后台运行,所以我希望有一个独立的解决方案。 – 2014-10-08 10:59:16

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 

你不需要使用热键,但你可以很容易地控制与它们的程序(远程桌面)

您可以使用在线编译器(http://www.script-example.com/themen/AutoIT-Online-Compiler.php)或从(https://www.autoitscript.com/site/)下载它希望我可以帮助如果任何进一步的问题与代码问我。

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。罐子与您的服务器文件的名称

相关问题