Sie würde in der Regel "Punkt" das Skript in dem Gültigkeitsbereich (global, ein anderes Skript, innerhalb eines Skript). Durch das Punktieren eines Skripts wird das Skript innerhalb dieses Bereichs geladen und ausgeführt, ohne dass ein neuer verschachtelter Bereich erstellt wird. Bei Funktionen hat dies den Vorteil, dass sie nach der Ausführung des Skripts bestehen bleiben. Sie könnten das tun, was Tomer außer schlägt vor, dass Sie das Skript zum Beispiel benötigen würden Punkt:
powershell -command "& { . <path>\script1.ps1; My-Func }"
Wenn Sie nur die Funktion von Ihrer aktuellen Powershell-Sitzung wollen dies auszuführen dann tun:
. .\script.ps1
My-Func
einfach sein Beachten Sie, dass jedes Skript, das nicht in einer Funktion enthalten ist, ausgeführt wird und Skriptvariablen zu globalen Variablen werden.
+1, war der zweite Codeausschnitt genau das, was ich, eine einfache Debug getrennter Funktionen in einer Skriptdatei von ISE –
Im zweiten Codeausschnitt tun musste, Sie den Code mit '& umgeben kann {...} 'wie in' & {. . \ script1.ps1; My-Func} 'zu vermeiden, Umfang Verschmutzung. –
Wenn Sie Parameter für die Funktion haben, fügen Sie sie nach dem Funktionsnamen ein, z. powershell -Befehl "& {." C: \ script.ps1 "; MyMethod" arg1 "" arg2 "}" – HockeyJ