Batch Script: Lokalen Webserver starten, anschließend Webseite aufrufen


HeinerK

Erfahrenes Mitglied
Hallo,

ich habe folgende Ausgangssituation:

Ich habe einen vom USB-Stick lauffähigen, kleinen Webserver auf apache tomcat-Basis. Dieser wird mit einem Konsolenbefehl (start_webserver.bat) gestartet. Nachdem dieser Befehl ausgeführt wurde, übernimmt der Webserver die Shell bis er mit STRG+C zum runterfahren bewegt wird. Es handelt sich um ein Windows-XP System.

Ich möchte:

... mit EINER batch-Datei den Webserver starten und gleich anschließend mit dem Standardbrowser des Users eine Webseite aufrufen lassen. Hintergrund ist, dass der unwissende Benutzer, der den USB Stick nachher verwendet, nur start.bat (s.u.) anklicken soll. Mehr mag ich ihm nicht zumuten. Das Aufrufen der Webseite klappt für sich genommen mit mit "start http://127.0.0.1/index.html".

Das Problem ist:

... packe ich beide Befehle hintereinander wie folgt in eine Batch Datei, wird die Webseite nicht aufgerufen, da der Webserver ja die Konsole übernommen hat und das Script nicht weiterläuft.

Code:
rem start.bat
start_webserver.bat
start http://127.0.0.1/index.html

Sieht jemand von Euch Abhilfe?
 

HeinerK

Erfahrenes Mitglied
Ahh, dankeschön! Das klappt schonmal nahezu so, wie ich mir das vorgestellt habe.

Einziges Problem. Der Webserver braucht, je nach System, so seine 10 bis 20 Sekunden, bis er da ist.

Deshalb kriege ich beim - sofort erfolgenden - Aufruf der Webseite jetzt natürlich noch eine Fehlermeldung.

Gibt es eine elegantere Lösung als eine Pause (realisiert z.B. mit "ping 127.0.0.1 -n 20") einzubauen?
 

sheel

I love Asm
Naja...was anderes als Pause?
Den Server verschnellern wird wohl eher nicht gehen.

Aber wenn schon pause, dann besser ordentlich und nicht pingen.
Da Bat sowieso nur unter Windows geht kann man dann auch gleich ein kleines C-Programm für Windows kompilieren.

Falls du mir glaubst, dass ich dir keinen Virus schicke, könnte ich dir ein Programm geben.
 

HeinerK

Erfahrenes Mitglied
Hallo sheel,

danke für schnelle Antwort. OK, die ping-variante ist etwas schmutzig, sehe ich ein. :)

Hab gerade nochmal intensiv 'drüber nachgedacht. Die offensichtliche Lösung ist: Ich nehme den Webseitenaufruf einfach mit in die letzte Zeile der start_webserver.bat auf. Das klappt gut.

Vielen Dank für's sparring! :)