Batch Splashscreen oder ähnliches

524
derHugo

Ich habe ein einfaches Batch-Skript geschrieben (das später in eine .exe-Datei konvertiert wird), das überprüft, ob ein Server vor dem Öffnen seiner Webseite erreicht wird:

@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" )  ) 

Das funktioniert perfekt und macht was es soll.

Im Falle eines Ausfalls und wenn der Server aus irgendeinem Grund nicht erreicht wird, dauert es immer noch einige Zeit (ich erwarte 2 Sekunden, aber tatsächlich dauert es bis zu 9 Sekunden), bis der Benutzer die Nachricht als Rückmeldung erhält ... Inzwischen tut er dies nicht Ich weiß nicht, ob der Code etwas tut.

Ich frage mich, ob es nur möglich ist, Batch zu verwenden, um eine Art "Splashscreen" (Nachricht / Bild) nur während der Pings anzuzeigen, bis eine Verbindung hergestellt wird oder eine Fehlermeldung angezeigt wird, die den Benutzer darüber informiert, dass das Skript ausgeführt wird.

Ich sage nur mit Batch, da es sich nur um eine Art "intelligenter" URL-Link handelt, ich möchte nicht zu viel Mühe in diesen verwenden, z. B. mit Java oder so ähnlich.

0
Warum zeigen Sie dem Benutzer nicht immer eine "Working ..." -Meldung, bevor Sie mit dem Ping-Befehl beginnen, und dann eine weitere, wenn Sie mit "Erfolg" oder "Fehler" fertig sind. Tomer Godinger vor 6 Jahren 0
Möglich, aber wie "töte ich" eine Nachricht? Das Problem wäre, dass, wenn es innerhalb von 2 ms erfolgreich ist, die Meldungen immer noch angezeigt werden. Ich möchte jedoch eine Meldung oder etwas nur während der Verbindungsüberprüfung anzeigen derHugo vor 6 Jahren 0
Nun, das kommt darauf an: Wie zeigen Sie Ihre Nachrichten? Tomer Godinger vor 6 Jahren 0
Bis jetzt von `msg` oder (wenn es nicht installiert ist / verfügbar ist) als Fallback mit` echo`, da mir aufgefallen ist, dass `msg` unter Windows Home nicht verfügbar ist derHugo vor 6 Jahren 0

1 Antwort auf die Frage

0
derHugo

Ich habe keine Lösung für den "Splash Screen" gefunden, also würde mich das immer noch interessieren.

Ich habe jedoch eine Problemumgehung gefunden, die vorerst in Ordnung ist, wenn Sie die -wOption Ping verwenden und ein maximales Zeitlimit von 1 Sekunde festlegen. Was ist in Ordnung für einen Benutzer zu warten.

Aber ich würde immer noch den "Splash Screen" bevorzugen, wenn jemand eine Lösung dafür hat.