2016-09-19 1 views
1

Ich habe ein PowerShell-Skript, das sehr groß geworden ist. Um Ladezeiten zu verringern, möchte ich nur Abschnitte des Skripts laden, die gerade aufgerufen werden.PowerShell Dot Sourcing zur Laufzeit

Lädt ein dot sourcing ein Skript noch zur Laufzeit? Oder wartet es, bis es diese Funktion trifft, bevor das andere Skript geladen wird?

Antwort

1

Es ist schwer zu sagen, was das Make-up Ihres aktuellen Skripts ist, aber ich würde empfehlen, Ihren Code in Funktionen aufzuteilen, möglicherweise ein Modul daraus zu machen. Wenn dieses Skript zuerst analysiert wird, definiert es nur die Funktionen und nicht ausführen, so wird es sehr schnell sein.

Dot Sourcing verwendet das angegebene Skript und führt es sofort aus, als wäre es an dieser Stelle in Ihrem ursprünglichen Skript.

+0

Das Skript lädt viele Funktionen (fast 4000 Zeilen), jede Funktion lädt ein anderes GUI-Fenster. Der erste ist das Hauptmenü. Ich möchte nur die Funktionen laden, die aus dem Hauptmenü ausgewählt sind. – CidV

+0

@CidV dot sourcing kann helfen, solange die Punktlinie nur ausgeführt wird, wenn die Menüauswahl getroffen wird. Sie können auch Funktionen innerhalb anderer Funktionen definieren (lokal für das übergeordnete Element). Dies könnte auch ein anderer Weg sein. – briantist

+0

Nach weiteren Tests scheint es, dass es nicht die Menge an Code ist. Es lädt die GUI, die das Problem jetzt aus irgendeinem Grund ist. Dauerte nicht lange in der Vergangenheit zu laden. XAML und WPF. – CidV