écran de démarrage par lots ou quelque chose de similaire

0

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.

derHugo
la source
Pourquoi ne pas toujours montrer à l'utilisateur un message "Working ..." avant de commencer à envoyer une requête ping, puis un autre lorsque vous avez terminé avec "Success" ou "Error"?
Tomer Godinger
Possible, mais comment puis-je "tuer" un message? Le problème serait que s'il réussissait dans les 2 ms, il y aurait toujours les messages affichés .. mais je veux afficher un message ou quelque chose comme ça juste pendant les vérifications de connexion
derHugo
Cela dépend: comment affichez-vous vos messages?
Tomer Godinger
Jusqu'à présent par msgou (si ce n'est pas installé / disponible) comme solution de secours en utilisant echoparce que j'ai remarqué msgn'est pas disponible sur Windows Home par exemple
derHugo

Réponses:

0

Je n'ai pas trouvé de solution pour le "Splash Screen", donc cela m'intéresserait toujours.

Mais j'ai trouvé une solution de contournement qui est acceptable pour l'instant en utilisant l' -woption de ping et en définissant un délai d'expiration maximal de 1 seconde. ce qui est correct pour un utilisateur d'attendre.

Mais je préférerais toujours le mode "écran de démarrage" si quelqu'un a une solution à cela.

derHugo
la source