batch - paralleles Abarbeiten

  • #1
K

Kasimee

Neues Mitglied
Themenersteller
Dabei seit
19.05.2005
Beiträge
3
Reaktionspunkte
0
Hallo,

ich möchte in einer .bat-Datei mehrere Prozesse gleichzeitig ablaufen lassen. Wenn diese Prozesse fertig sind, sollen die nächsten angestoßen werden.

Meine Datei heißt beispielsweise aufruf.bat. In dieser Datei werden andere .bat-dateien aufgerufen. z.B: Erst möchte ich test1.bat, test2.bat und test3.bat gleichzeitig starten, wenn diese 3 Prozesse fertig sind, sollen beispiel1.bat und beispiel2.bat gleichzeitig gestartet werden.

Ist das möglich, und wenn ja, wie?

Vielen dank schonmal für Antworten!

mfg

Agathe
 
  • #2
das ist schon ein wiederspruch in sich: batch heißt ja bekanntlich stapel, da wird ein teil nach dem anderen abgearbeitet ... was du versuchen kannst: die anderen batch dateien via start aus der 1. batch zu starten, dann werden die batchs sofort hinterinander gestartet, oder du läßt die batch-dateien via taskplaner alle zur selben zeit starten. wenn die batch dateien von einander unabhängig sind ist das meiner meinung nach die beste lösung ...

greetz

hugo
 
  • #3
hallo,

vielen dank für die Antwort, mein Problem dabei ist, woher weiß ich, wann die Prozesse fertig sind, damit ich den zweiten Block starten kann?
 
  • #4
tja, das ist jetzt die frage ... da solltest du ja besser bescheid wissen als ich, da ich die programme bzw. befehle die du ausführen willst nicht kenne. generell kannst du aus einer batch via call eine andere batch aufrufen, die dann wenn sie abgearbeitet wurde wieder in die ursprungsbatch zurückkehrt. also bau dir eine ober-batch in der du die anderen batch dateien via call aufrufst, wenn die dann fertig sind macht die oberbatch mit dem nächsten eintrag weiter.

so könnte der oberaufruf sein (z.b. start.bat genannt)

@echo off
call aufruf.bat
start beispiel1.bat
start beispiel2.bat

die aufruf.bat sieht dann so aus

@echo off
start test1.bat
start test2.bat
start test3.bat

dann fällt aber das parallele starten via taskplaner weg, der zeitliche unterschied beim starten via start ist aber minimal ...

greetz

hugo
 
  • #5
Ich habe das jetzt teilweise mit vbscript gelöst.

mein vbs-skript ruft einzelne Dateien (*.bat) auf, die dann einen call-Aufruf machen. Vor dem call-aufruf wird eine Datei geschrieben, danach wird sie wieder gelöscht. So kann ich prüfen, ob der Prozess noch läuft.

Der code von vbs sieht dann so aus:

Code:
set wshshell = CreateObject(WScript.Shell)
dim fso
set fso = CreateObject(Scripting.FileSystemObject)

wshshell.Run call01.bat 
wshshell.Run call02.bat

'solange warten, bis die Lock-dateien weg sind
wscript.sleep 3000->warten, damit das script auch Zeit hat, die Dateien anzulegen
do while(fso.FileExists(lock1.lock) or fso.FileExists(lock2.lock))
wscript.sleep 3000
loop

wshshell.Run call03.bat
wshshell.Run call04.bat
wshshell.Run call05.bat
wshshell.Run call06.bat

'solange warten, bis die Lock-dateien weg sind
wscript.sleep 3000->warten, damit das script auch Zeit hat, die Dateien anzulegen
do while(fso.FileExists(lock3.lock) or fso.FileExists(lock4.lock) or fso.FileExists(lock5.lock) or fso.FileExists(lock6.lock))
wscript.sleep 3000
loop

wshshell.Run call07.bat
wshshell.Run call08.bat
wshshell.Run call09.bat
wshshell.Run call10.bat

'solange warten, bis die Lock-dateien weg sind
wscript.sleep 3000->warten, damit das script auch Zeit hat, die Dateien anzulegen
do while(fso.FileExists(lock7.lock) or fso.FileExists(lock8.lock) or fso.FileExists(lock9.lock) or fso.FileExists(lock10.lock))
wscript.sleep 3000
loop

wshshell.Run call11.bat
wshshell.Run call12.bat

'solange warten, bis die Lock-dateien weg sind
wscript.sleep 3000->warten, damit das script auch Zeit hat, die Dateien anzulegen
do while(fso.FileExists(lock11.lock) or fso.FileExists(lock12.lock))
wscript.sleep 3000
loop

eine call*.bat sieht so aus:

Code:
lock7 > lock7.lock
call beispiel.bat
del lock7.lock

Das ist noch nicht optimal, aber es funktioniert, im Moment arbeite ich noch daran, die Befehle über Parameter zu übergeben, damit ich nicht so viele Dateien habe.
 
Thema:

batch - paralleles Abarbeiten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben