【发布时间】:2023-11-14 12:53:02
【问题描述】:
我是根据本网站上其他问题/答案的混搭以及在 ss64.com 上找到的内容创建的
我已经把它锤炼成我想要的,现在它只是一个关键的缺失细节,它会让它一遍又一遍地循环直到建立连接,同时避免不断地启动每个服务器上的服务器循环。
它被大量过度设计和可怕地制作,但它基本上是我所学的所有知识的巅峰之作,只是以我能理解的方式解决它。
目前的主要问题是,如果丢包率低于 100%,它会启动服务器,即使丢包率为 80%,这对于任何连接或功能来说都太高了。
我正在寻找那个关键命令,以确保服务器仅在有 100% 连接时才会启动,并确保它不会在有 100% 连接的情况下继续启动服务器循环(这种情况已经发生太多次了,运行 50 个服务器实例真的是 PC 杀手)。
这就是我所拥有的(不要笑得太厉害)。
@echo off
title Server Restart
color 0A
cls
:start
Cls
set ip=xxx.xx.xxx.xx
:ping
ping %ip% -n 5 || goto PingFail
timeout /t 8
cls
echo Ping was Successful to %ip% at %date% %time%
timeout /t 10
ping %ip% -n 5 -w 5000 && goto start
echo Moving To PingFail...
goto PingFail
:Starting
Echo Connection Established... Starting server
**Start Server.bat**
Echo Start Successful
goto start
:PingFail
cls
Echo Connection Has Failed.. looping.
timeout /t 3
goto Pingloop
:Pingloop
echo PINGLOOPING
ping %ip% -n 5 || goto Pingloop
timeout /t 15
goto Starting
【问题讨论】:
-
您能否提供更多关于“服务器”的详细信息以及您 ping 的机器以及您要 ping 的 IP?只需使用示例 IP 地址。我们需要知道您当前的设置是什么。
-
这是一台家用 PC ping 我的可见公共 IP。服务器是从一个名为“server.bat”的批处理文件中启动的,它刚刚以-batchmode 和-nographics 附件启动游戏。如果您继续打开 Server.bat,它将启动多个窗口。他们都将从我的 IP 运行一个活动服务器。 (因此需要确保它仅在建立 Internet 连接时才打开服务器)老实说,它应该具有关闭相同类型的现有进程的功能。
-
这是一个使用更改的 IP 运行的示例。 i.gyazo.com/fe2541419f88d2ff728429cf8d39a98c.png
标签: loops batch-file ip ping restart