Batch gleichzeitig

Hallo,

Ich habe ein DOS-Batch programm geschrieben, was eine pdf-Datei bearbeitet. Dazu muß es zwischendurch drei temporäre Dateien erstellen. Soweit funktioniert alles.

Nun dauert die Ausführung länger und die Benutzer starten schon einen zweiten Batch mit einer anderen Datei, was alles durcheinander bringt. Die resultierenden Dateien sind dann nicht zu gebrauchen.

Wie kann ich das verhindern? Ich habe schon überlegt, die Namen der temporären Dateien durch Zufall zu erzeugen, aber so richtig sicher ist das nicht. Ich würde gerne mit dem zweiten Batch so lange warten, bis der erste abgeschlossen ist. Allerdings sollte auch nichts blockieren, wenn der Batch abstürzt.

Wer-weiss-was?

Grüße Chris

Hallo,

Wie kann ich das verhindern? Ich habe schon überlegt, die
Namen der temporären Dateien durch Zufall zu erzeugen, aber so
richtig sicher ist das nicht.

du könntest ein Verzeichnis für die temporären Dateien erzeugen – und wenn es schon existiert einen anderen Namen nehmen.

Du könntest die PID der Batch benutzen – etwa mit getpids.exe .

Ich würde gerne mit dem zweiten Batch so lange warten,
bis der erste abgeschlossen ist.

Also eine Lock-Datei anlegen und danach löschen.

Allerdings sollte auch nichts blockieren, wenn der Batch
abstürzt.

Die Lock-Datei könnte wiederum die PID des Batch-Prozesses enthalten, der sie erzeugt hat. Ein anderer Prozess kann dann prüfen, ob diese Instanz tatsächlich läuft oder vielleicht abgestürzt ist.


PHvL

Hallo Philipp,
Danke für die schnelle Antwort und den guten Link!
Chris