Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

BatchFIle-Synchronisation

Mdl / 15 Antworten / Flachansicht Nickles

Der Hintergrund der folgenden Frage ist der, dass ich es unter Windows XP letzlich noch immer nicht geschafft habe, dass ein im Autostart-Ordner eingetragenes Programm genau einmal gestartet wird (und nicht mehrmals). In meinem Fall will ich ein Batchprg. eben genau einmal starten. Ich kann nicht recht verstehen, wieso das (bei mir) so ist, aber - nunja, dann bastelt man eben einen Workaround...

Dieser Workaround sieht bei mir in etwa so aus.
1 Falls Laufwerk Z: definiert ist => Batchfile beenden
2 SUBST Z:
3 ... ; weitere Befehle

Da SUBST sich auf das ganze System auswirkt funktioniert das i.d.R. auch ganz gut.
Es gibt aber einen Schwachpunkt, der in letzter Zeit des öfteren Auftritt.

Befindet sich Aufruf A am Ende der Zeile 1 und Aufruf B ist jetzt am Zug, dringt auch Aufruf B zu Zeile 2 vor, d.h. Aufruf A und B durchlaufen letztlich alle Zeilen. Mein selbstgestrickter Mechanismus funktioniert also nicht immer...

?????
? Weiß jemand eine Möglichkeit wie man das verhindern kann.

Vielen Dank,

Mdl

P.S. Ich finde es eher eine (Batch-)Programmierkniffelei als ein XP-Problem, deshalb lege ich es unter diesem Forum ab...

bei Antwort benachrichtigen
Synthetic_codes ChrE „Hallo! Also, Batchfiles sind ja nun wirklich seeehr geeignet für...“
Optionen

wie wäre es wenn du es machst wie die Kollisionserkennung beim LAN?
Beim start der Batchdatei startest du ein Programm das eine zufällige anzahl millisekunden(sollte dann schon grösser 2k sein) wartet. danach wird überprüft, ob dein LW Z bereits existiert. Da es unwahrscheinlich ist, dass 2x die gleiche zufallszahl ermittelt wird, wird das eine script vor dem anderen ausgeführt, und das andere wird dann feststellen, dass es das 2. ist. LW Z kannste ja nach ausführen des scripts mit subst /D wieder Löschen und für das warteprogramm sollten 5 zeilen C-Code mehr als genug sein.

'); DROP TABLE users;--
bei Antwort benachrichtigen