Ich habe eine .ps1-Datei, in der ich benutzerdefinierte Funktionen definieren möchte.
Stellen Sie sich vor, die Datei heißt MyFunctions.ps1 und der Inhalt lautet wie folgt:
Write-Host "Installing functions"
function A1
{
Write-Host "A1 is running!"
}
Write-Host "Done"
Um dieses Skript auszuführen und die A1-Funktion theoretisch zu registrieren, navigiere ich zu dem Ordner, in dem sich die .ps1-Datei befindet, und führe die Datei aus:
.\MyFunctions.ps1
Dies gibt aus:
Installing functions
Done
Wenn ich jedoch versuche, A1 aufzurufen, wird einfach die Fehlermeldung angezeigt, dass es keinen Befehl / keine Funktion mit diesem Namen gibt:
The term 'A1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:3
+ A1 <<<<
+ CategoryInfo : ObjectNotFound: (A1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Ich muss einige PowerShell-Konzepte falsch verstehen. Kann ich keine Funktionen in Skriptdateien definieren?
Beachten Sie, dass ich meine Ausführungsrichtlinie bereits auf 'RemoteSigned' festgelegt habe. Und ich weiß, dass .ps1-Dateien mit einem Punkt vor dem Dateinamen ausgeführt werden :. \ MyFile.ps1