Batch Programm1 soll warten bis Programm2 vollständig gestartet ist

aggitron

Commander
Dabei seit
Jan. 2006
Beiträge
2.062
Hallo,

ich starte beim Rechnerstart zwei Programme automatisch per Batch im Autostart.

Die Programme müssen in einer bestimmten Reihenfolge gestartet werden.
Ein Programm ist der MS SQL Server (Programm1). Dieser benötigt zum starten etwas Zeit.
Programmm2 muss nun warten bis Programm1 vollständig gestartet ist. Eine zeitliche Verzögerung alá

Code:
ping 127.0.0.1 -n 60 >nul
möchte ich nicht nutzen, da wir die Programme auf unterschiedlicher Hardware nutzen und die Programme auf der jeweiligen Hardware schnellstmöglich starten sollen.
Das ganze sollte möglichst mit Windows Boardmitteln funktionieren. Als OS wird in der Regel WinXP eingesetzt.
Bin für jeden tipp dankbar.
 

aggitron

Commander
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
2.062
Würde dann im Prinzip ja auch nur ne Zeitverzögerung einarbeiten. Das krieg ich auch mit obiger Zeile im Batch hin.
Der SQL Server (Programm1) wird nicht beendet, so wie in der VBS Beschreibung angenommen.
Er soll einfach nur vollständig gestartet sein bevor Programm2 startet (Programm2 läuft sonst auf Fehler).
 

chorn

Ensign
Dabei seit
Feb. 2008
Beiträge
136
Hi

sieh dir mal die Doku zu "START" an. ("start /?")

Gruss, Christian.
 

aggitron

Commander
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
2.062
Ich fürchte du musst mich darauf stossen. Ich lese aus der Doku nichts heraus was mich weiter bringen würde. Die Option /WAIT wartet auch nur auf das Ende eines Programmes.
 

DerEineDa

Lieutenant
Dabei seit
Juni 2003
Beiträge
999
Das wird wahrscheinlich auch kaum möglich sein, weil nur das zu startende Programm weiß, wann es denn fertig geladen ist. Und wenn es dir darauf keinen Hinweis gibt, dann kann das OS nicht wissen, wann es bereit ist.
 

Gobble-G

Lieutenant
Dabei seit
Nov. 2002
Beiträge
727
Ich muss DerEineDa da zustimmen. Da wird es in dieser Form wohl kaum eine Möglichkeit geben...

Was mich aber ein bisschen wundert, ist, dass ihr den Server per Kommando startet!? Eigentlich ist das doch ein Dienst. Falls ihr den Weg mit dem Kommando nur geht, um sicherzustellen, dass der Server bei Programm2-Start schon fertig ist, würde ich vielleicht mal den "net start ..."-Befehl versuchen, um den Dienst manuell zu starten. Der hat nämlich eine Rückgabe, wenn der Dienst vollständig gestartet wurde mMn. Heißt also, erst wenn der Dienst läuft, wird der net-Befehl beendet. Danach könnte man Programm2 aufrufen. Aber keine Ahnung, ob sich das auf euer Problem anwenden lässt...
 
C

claW.

Gast
Das wird wahrscheinlich auch kaum möglich sein, weil nur das zu startende Programm weiß, wann es denn fertig geladen ist.
hier könnte man mit nem kleinen programm so lange dem programm nachrichten schicken, bis es auf die erste nachricht reagiert. der punkt wäre dann, wenn das programm komplett geladen wurde und bereit für eingaben ist.

@ te: erfahrungen mit programmiersprachen (c++, delphi, java, eig egal was) hast du nicht oder?
 

aggitron

Commander
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
2.062
Wenn nichts geht schreib ich ein Programm. Dachte aber das es so schneller geht, zudem sollte es mit Windows Boardmitteln umgesetzt werden.
Dem Lösungsansatz von Gobble-G werde ich nochmal nachgehen.
 

te one

Lt. Commander
Dabei seit
Apr. 2009
Beiträge
1.102
also ich würd auch sagen, dass es mit "einfachen" mitteln nicht funktioniert! denn woher willst du wissen wann das programm geladen ist (also außer es sendet dann i-was odda so)??

denn wennn du sagen würdest es soll prog2 öffnen wenn prog1 offen ist, wird er prog2 öffnen, sobald prog1 sein "ladefenster" offen hat!

ich würde einfach einen counter von (jetz mal geschätzt) 30sekunden!
musst halt vorher mal das prog1 aufmachen und mal gucken wie lang es dauert! dann nochmal 20% differenz odda so drauf und los gehts mitm 2ten programm!

Kompliziertere lösungen gibts bestimmt auch, abba diese is bei weitem die einfachste
 
Top