只需要尋找一個更正/添加到這個Cannibalized重新啓動代碼(原來是一個Minecraft服務器,雖然這不是它現在使用的)。批處理服務器ping並重新啓動遊戲
@echo off
title Server Restarter
color 0A
cls
@%SystemRoot%\system32\ping.exe -n 1 xxx.xxx.x.xx
pause
:start
Call Server.bat
cls
pause
這當前做了一個非常簡單的工作:調用server.bat
並啓動服務器。它沒有我想要的那些花裏胡哨的東西。 此時ping的輸出功能不起作用。
目標:
平,看是否有特定的IP(可能端口)可達。
如果他們不可達,關閉的任何當前情況下SERVER.EXE
繼續執行ping 直到特定IP 可達。
一旦IP 是到達,叫
server.bat
它需要在約30秒的時間間隔來ping。
有些情況下爲什麼它的需要:
遊戲服務器目前不會不管它是在線與否的關閉其進程,它繼續在這個過程中窗口中運行。這就是爲什麼我需要關閉任何當前實例,否則我們最終會運行多個相同的服務器。
服務器使用直接IP連接從本地計算機運行,因此如果本地計算機未連接到Internet,服務器將無法與任何人(顯然)聯繫。 .bat
的意圖是持續運行,即使用戶不在計算機上,它也會負責確保服務器24/7在線。
這將是一個文件,我想提供給其他服務器主機誰可能想要使用它來保持自己24/7在線。
端口檢查將確保主服務器端口可到達並且故障不在他們一邊,這不是必需的,所以如果它太麻煩了,不要擔心。
內部 「Server.bat」:
@echo off
echo Server process starting
echo Ctrl+Alt+Del to Kill
Server.exe -batchmode -nographics
您的幫助和意見的一切都非常歡迎。我試圖儘可能地概括這一點,以保持簡單,所以可以對任何可能適用於任何應用程序的人進行更改。
首先:在'ping'命令中不需要'@'。其次,您可以使用'&'或'|'運算符來檢測ping是否成功。你也可以嘗試'%errorlevel%'變量。 – SteveFest
@SteveFest對不起,我不太明白,我在哪裏/如何使用'%errorlevel%'或'&'''我的批次理解水平毫無疑問是有限的。 – Cinn
去ss64.com/nt,你可以找到 – SteveFest