Juste à la recherche d'une correction/ajout à ce code de redémarrage cannibalisé pour (à l'origine un serveur Minecraft, bien que ce ne soit pas ce qu'il est utilisé pour l'instant).Ping du serveur batch et redémarrage pour un jeu
@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
Actuellement, le travail est très simple: appelle server.bat
et démarre le serveur. Il n'a rien des cloches et des sifflets que je voudrais bien avoir. La sortie de ping n'est pas fonctionnelle pour le moment.
L'objectif:
Ping pour voir si une adresse IP spécifique (et peut-être des ports) sont accessibles.
Si elles ne sont pas accessibles, fermez toutes les instances en cours de Server.exe
Continuer jusqu'à pinger IP spécifique est accessible.
Une fois que l'IP est accessible, appelez
server.bat
Il a besoin de faire un ping à intervalles de 30 secondes ~.
Certains contexte pourquoi il est nécessaire:
Le serveur de jeu ne pas fermer son processus quel que soit qu'il soit en ligne ou non, il continue de fonctionner dans la fenêtre de processus. C'est pourquoi j'en ai besoin pour fermer toutes les instances actuelles, sinon on se retrouve avec des multiples du même serveur en cours d'exécution.
Le serveur est exécuté à partir d'un ordinateur local utilisant une connexion IP directe. Par conséquent, si l'ordinateur local n'est pas connecté à Internet, le serveur ne sera accessible à personne (évidemment). L'intention pour le .bat
est de fonctionner continuellement même si l'utilisateur n'est pas à l'ordinateur, il veillera à ce que le serveur soit en ligne 24/7.
Il s'agira d'un fichier que je souhaite mettre à la disposition des autres hôtes du serveur qui voudront peut-être l'utiliser pour rester en ligne 24 heures sur 24, 7 jours sur 7. La vérification du port sera de s'assurer que les ports du serveur maître sont accessibles et que le défaut n'est pas de leur côté, ce n'est pas essentiel, donc si c'est trop de problèmes, ne vous inquiétez pas.
"server.bat" Inside:
@echo off
echo Server process starting
echo Ctrl+Alt+Del to Kill
Server.exe -batchmode -nographics
Tous votre aide et les commentaires sont très bien accueilli. J'ai essayé de généraliser cela autant que possible pour le garder simple, ainsi il peut être changé pour n'importe qui d'autre qui peut trouver l'utilisation pour n'importe quelle application.
Tout d'abord: vous n'avez pas besoin de la commande '@' dans la commande 'ping'. Deuxièmement, vous pouvez utiliser l'opérateur '&' ou '|' pour détecter si le ping a réussi ou non. Vous pouvez également essayer la variable '% errorlevel%'. – SteveFest
@SteveFest Désolé, je ne comprends pas très bien où/comment j'utiliserais '% errorlevel%' ou '&' '|' ' Mon niveau de compréhension des lots est incontestablement limité. – Cinn
aller à ss64.com/nt et vous pouvez les trouver – SteveFest