2014-10-08 919 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。罐子與您的服務器文件的名稱

相關問題