J'ai écrit un script batch simple (qui sera converti en un fichier .exe ultérieurement) qui vérifie si un serveur est atteint avant d'ouvrir sa page Web:
@echo off
ping -n 1 -w 1000 10.###.###.1 | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" You are not connected via VPN. You have to conect to VPN first!
if %ERRORLEVEL% NEQ 0 (
echo You are not connected via VPN. You have to conect to VPN first!
)
) else (
ping -n 1 -w 1000 some.server.name | find "TTL=" >nul
if errorlevel 1 (
ping -n 1 -w 1000 192.168.###.### | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" Couldn't find requested Server. Please contact the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Couldn't find requested Server. Please contact the administrator!
)
) else (
msg "%username%" Connected but using NO-DNS Fallback. Please inform the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Connected but using NO-DNS Fallback. Please inform the administrator!
)
cmd /c start "" "http://192.168.###.###"
)
) else (
cmd /c start "" "http://some.server.name"
)
)
Cela fonctionne parfaitement et fait ce qu’il devrait.
Quoi qu’il en soit, en cas de panne et si le serveur n’est pas atteint pour une raison quelconque, il faut encore un certain temps (j’attends 2 secondes, mais en réalité cela prend 9 secondes), jusqu’à ce que l’utilisateur reçoive le message en tant que feedback ... 'sais pas si le code fait quelque chose.
Je me demande s’il est possible d’utiliser uniquement batch pour afficher une sorte de "Splashscreen" (message / image) uniquement pendant les pings jusqu’à ce qu’il se connecte ou qu’un message d’erreur s’affiche, indiquant à l’utilisateur que le script est en cours d’exécution?
Je dis seulement en utilisant batch, car comme il s’agit simplement d’une sorte de lien URL "intelligent", je n’aimerais pas avoir à faire trop d’efforts, par exemple en utilisant Java ou quelque chose comme ça.
msg
ou (si ce n'est pas installé / disponible) comme solution de secours en utilisant echo
parce que j'ai remarqué msg
n'est pas disponible sur Windows Home par exemple