只需要寻找一个更正/添加到这个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