Nur auf der Suche nach einer Korrektur/Ergänzung zu diesem kannibalisierten Neustart-Code für (ursprünglich ein Minecraft-Server, obwohl das ist nicht, was es jetzt verwendet wird).Batch Server Ping und Neustart für ein Spiel
@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
Das gegenwärtig der Fall ist eine sehr einfache Aufgabe: ruft server.bat
und startet den Server. Es hat nichts von dem Schnickschnack, ich hätte es aber gerne. Die Ausgabe von Ping ist zur Zeit nicht funktionsfähig.
Das Ziel:
Ping, um zu sehen, ob eine bestimmte IP (und vielleicht Ports) erreichbar ist.
Wenn sie nicht erreichbar, schließen Sie alle aktuellen Instanzen von Server.exe
Weiter bis bestimmte IP-Pingen erreichbar ist.
Nachdem die IP- erreichbar ist, rufen
server.bat
Es muss in Abständen von ca. 30 Sekunden bis pingen.
Einiger Kontext dafür, warum es gebraucht wird:
Der Spielserver seinen Prozess schließt nicht zur Zeit unabhängig davon, ob online oder nicht ist, geht es weiter im Prozessfenster laufen. Deshalb muss ich alle aktuellen Instanzen schließen, sonst enden wir einfach mit mehreren gleichen Servern.
Der Server wird von einem lokalen Computer mit direkter IP-Verbindung ausgeführt. Wenn der lokale Computer nicht mit dem Internet verbunden ist, ist der Server (offensichtlich) für niemanden erreichbar. Die Absicht für die .bat
ist, kontinuierlich zu laufen, selbst wenn der Benutzer nicht am Computer ist, wird es dafür sorgen, dass der Server 24/7 online ist.
Dies wird eine Datei sein, die ich anderen Server-Hosts zur Verfügung stellen möchte, die sie verwenden möchten, um sich rund um die Uhr online zu halten.
Die Überprüfung des Ports wird sicherstellen, dass die Master-Server-Ports erreichbar sind und der Fehler ist/ist nicht auf ihrer Seite, das ist nicht wichtig, also, wenn es zu viel Mühe ist, keine Sorge.
Inside "server.bat":
@echo off
echo Server process starting
echo Ctrl+Alt+Del to Kill
Server.exe -batchmode -nographics
Alle Ihre Unterstützung und Kommentare werden sehr begrüßt. Ich habe versucht, dies so weit wie möglich zu verallgemeinern, um es einfach zu halten, so dass es für jeden geändert werden kann, der es für irgendeine Anwendung verwenden könnte.
Zunächst einmal: Sie brauchen nicht das '@' im 'ping' Befehl. Zweitens können Sie den Operator '&' oder '|' verwenden, um zu erkennen, ob der Ping erfolgreich war oder nicht. Sie können auch '% errorlevel%' Variable versuchen. – SteveFest
@SteveFest Sorry, ich verstehe nicht ganz, wo/wie würde ich '% errorlevel%' oder '&' '|' verwenden Mein Stapelverständnis ist zweifellos begrenzt. – Cinn
gehen Sie zu ss64.com/nt und Sie können diese heraus finden – SteveFest