Auf aufgerufenes Programm warten?

  • Ich hab ein kleines Skript, was nichts anderes macht, als hintereinander *.bat Dateien aufzurufen.
    Allerdings müssen diese Dateien auch strikt nacheinander aufgerufen werden.

    Spoiler anzeigen
    [autoit]


    $bat1 = Run("bat1.bat")
    If $bat1 = 1 then
    $bat2 = Run("bat2.bat")
    If $bat2= 1 then
    $bat3 = Run("bat3.bat")
    ..... und so weiter und so fort ....
    Endif
    EndIf

    [/autoit]

    Allerdings will das Skript nicht so wie ich will.
    Es ruft bat1 auf und sofort darauf bat2 obwohl bat1 noch arbeitet.
    über Sleep will ich das nur ungern lösen, weil die Bearbeitungszeiten in
    den einzelen bat-Dateien sehr unterschiedlich ist.

    Habt ihr eine Idee?

    Einmal editiert, zuletzt von Davor (23. Januar 2008 um 14:14)

  • da hab ich sechs Möglichkeiten:
    1==> Die 1. Batch ruft die 2. auf und die dann die 3. usw.
    2==> Du machst das ganze mit WinExists
    3==> Du machst alles mit ProcessExists
    4==>

    Spoiler anzeigen

    Mit Parametern. Also zb. ist PROGRAMM.exe dein AutoIt Script. Jetzt rufst du das Script auf welches die 1. Batch startet. Die 1. Batch ruft dann dein PROGRAMM.exe mit ner Zahl als Parameter auf z.B. "PROGRAMM.exe 2". Die 2 bewirkt dass die zweite batch aufgerufen wird. Die 2. Batch ruft dein PROGRAMM dann mit Parameter 3 auf usw. (sehr umständlich).


    5==> Mit RunWait sollte es funktionieren
    6==> Alles in AutoIt schreiben


    Btw. warum ist das Thema also gelöst markiert?

  • Ok danke euch!
    Warum es schon als gelöst war weiß ich grad selber nicht..
    ich sollte nicht so viel mit der umschalttaste rumspielen :S