Aufruf einer Funktion in einem anderen Skript beim ausführen mit "Ausführen Mit PowerShell'
Habe ich Funktionen in einer 'Bibliothek' - Datei aufgerufen werden, aus meiner "Arbeitnehmer" - Skript.
Library-Datei
function ShowMessage($AValue)
{
$a = new-object -comobject wscript.shell
$b = $a.popup( $AValue )
}
Worker-Datei
. {c:\scratch\b.ps1}
ShowMessage "Hello"
Läuft die 'Arbeiter' - Skript funktioniert gut, wenn Sie in der PowerShell-IDE, aber wenn ich mit der rechten Maustaste klicken Sie auf die Arbeiter Datei und wählen Sie "mit PowerShell Ausführen" es kann nicht die Funktion "ShowMessage'. Beide Dateien sind im gleichen Ordner. Was könnte passiert sein?
- Beachten Sie auch, dass Berufung das Skript mit
&
, zB.& "c:\scratch\b.ps1"
nicht importieren Sie die Funktionen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Arbeiter-Datei ändern:
Als @RoiDanton unten erwähnt:
Dem ersten Punkt ist ein operator zum ändern der Rahmen-und in diesem Kontext hat es nichts zu tun mit Pfaden. Sehen Punktquellnotation.
. ".\b.ps1"
. Sehr neu psh, ich wusste nicht, dass das der erste Punkt ist ein operator zu ändern, der Umfang und der in diesem Kontext hat nichts zu tun mit Pfaden. Siehe punktquellnotation.In Ihrem Arbeiter-Datei, dot-Quellcode der library-Datei, diese lädt alle Inhalte (Funktionen, Variablen, etc), die auf globaler Ebene, und dann werden Sie in der Lage sein, um Anruf-Funktionen aus der library-Datei.