simsalabim Geschrieben 16. Juli 2009 Geschrieben 16. Juli 2009 Hallo, ich habe ein kleines problem bei dem Ihr mir helfen könnt. In meinem VBS Script wird eine proceure aufgerufen. Sub Start_datenwürfel() In dieser proceur möchte ich eine bestimmte batch aufrufen, die einen Datenwürfel refrehst. Die batchdatei steht bereits und läuft auch fehlerfrei. Nun meine Frage: Ich habe c.a. 10 Würfelk zu refreshen, die alle durch eine Batcdatei aufgerufen werden. Wie kann ich erreichen, das diese nacheinander abgearbeitet werden, ohne gleichzeitiog zu laufen. Aufruf in der prozedur: Set oexec = WshShell.run("D:\dbase\cubes\aktualisiere_fakten.bat") Set oexec = WshShell.run("D:\dbase\cubes\aktualisiere_auftraege.bat") usw. Im Klartext heißt das Zuerst soll der erste cube refresht werden. Ist er fretgi dann der nächste usw. Dies sollte hierüber möglich sein. Wer weiß ne lösung danke Zitieren
Eratum Geschrieben 16. Juli 2009 Geschrieben 16. Juli 2009 Wenn das ganze immer ein neues Fenster öffnet kannst du prüfen, ob das Fenster noch offen ist...Oder aber du schaust (bzw lässt schauen) in die Prozessliste ob noch ausgeführt wird... Alternativ könntest du ein entsprechendes "Sleep" einbauen (wenn die Skripte immer ungefähr gleich lang laufen)... MfG Erratum P.s.: Alternativ fällt mir grad ein, dass du am ende der Batches auch ne Shellvar deklarieren und diese mit der vbs abfragen kannst...Dann geht es eben erst weiter wenn die var nen bestimmten wert hat ^^ Zitieren
Amstelchen Geschrieben 16. Juli 2009 Geschrieben 16. Juli 2009 du suchst bWaitOnReturn: bWaitOnReturn Optional. Boolean value indicating whether the script should wait for the program to finish executing before continuing to the next statement in your script. If set to true, script execution halts until the program finishes, and Run returns any error code returned by the program. If set to false (the default), the Run method returns immediately after starting the program, automatically returning 0 (not to be interpreted as an error code). s'Amstel Zitieren
Eratum Geschrieben 17. Juli 2009 Geschrieben 17. Juli 2009 Den kannt' ich auch noch nicht :-) Thx... Zitieren
simsalabim Geschrieben 17. Juli 2009 Autor Geschrieben 17. Juli 2009 Hallo, ja das hört sich gut an. Wei mjuss ich den den jetzt einbauen. Derzeit schaut das jetzt so aus. Leider werden wie gesagt alle Cubes gleichzeitig ausgeführt Sub process_cubes() On Error Resume Next Set WshShell = Wscript.CreateObject("Wscript.Shell") 'Erstellung des Objektes wscript Set oexec = WshShell.runSet oexec = WshShell.run("D:\dbase\cubes\aktualisiere_fakten.bat") protokoll logfile, oexec.stderr.readall protokoll logfile, "Auftrag Fakten Würfel erstellt" Set oexec = WshShell.run("D:\dbase\cubes\Fakturen.bat") protokoll logfile, oexec.stderr.readall protokoll logfile, " Fakturen Würfel erstellt" End Sub Wo und wie muss der Wuellcode denn jetzt eingabut werden? Muss ich das in einer Schleife machen, indem ich auf einen stqatus abfrage. Leider weiß ich nicht genau wie ich so etwas einbaue. danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.