Hallo werte Community,
ich habe eine theoretische Frage, die ich beantwortet haben möchte, bevor ich diese Idee wirklich umsetze.
Situation:
Ich schreibe gerade an einen Script, welches mir einen PC für eine bestimmte Nutzung selbstständig einrichtet. Dazu gehören diverse Einstellungen in Windows, sowie die Installation von einigen Programmen. Im fertigen soll diese .xese Datei dann zusammen mit den dazugehörigen setups in einen Ordner gepackt auf einen Datenträger laden. Soweit so gut, ich komme Stück für Stück voran. Die einzelnen Schritte sind natürlich in jeweilige Funktionen gepackt wie z.B installAdobeReader(). Da einige der Programme bzw. Einstellungen einen Neustart fordern habe ich eine eigene reboot-Funktion geschrieben. Diese speichert mir je nach Funktion eine Flag in einer .txt Datei ab. Nach dem Reboot wird das Programm ebenfalls wieder gespeichert. Nun ist um innerhalb jeder Funktion um deren gesamten inhalt eine Bedingung gebaut, die den Stand der aktuellen Flag prüft und somit am richtigen Punkt erst weiterarbeitet. Das ist jetzt nur grob formuliert, es funktioniert jedenfalls.
Func installPrgramm()
Local $iFuncID = 6
If getFlag() <> $iFuncID Then
Return
Else
;Installation...
;Erhöhe FLAG
incFlag()
EndIf
EndFunc
Alles anzeigen
Idee:
Nun bin ich zusammen mit einen Kollegen auf eine andere Lösung des Rebootsproblems gekommen. Wir halten diese theoretisch für besser, da man diese später mal mit weniger Fehlerquellen ändern kann und ein deutlich konsequenteres System ist.
Das, was jetzt nur einzelne Funktionen sind in eigene Dateien packen. Und dann am Ende der Datei die nächste Aufrufen zum weiterarbeiten. Wenn man rebooten will kann man dann die nächste .exe Datei automatisch nach dem Neustart weiterlaufen lassen.
Problem:
Bevor ich mir nun die rießen Arbeit mache alles so zu zerstückeln, dass es läuft interessiert mich, wie es sich genau verhält, wenn ich mit einer .exe eine .exe aufrufe. Denn es werden (ich habe die genau Zahl gerade nicht im Kopf) lässig 30 Datein. Wenn ich auf das o.g. Beispiel bezogen mit func1 func 2 aufrufe und der aufruf das letzte im Script ist, wird dann func1 beendet, oder läuft diese im Hintergund mit. Dann hätte ich irgendwann 30 Prozesse am laufen und das möchte ich nicht.
Ich weis, es ist viel Text um recht wenig Inhalt. Ich möchte nur meine Frage möglichst anschaulich formulieren.
Dennoch hoffe ich auf eine Antwort, die mein Wissen erweitert.
LG, Reiterfuchs