Mam plik .ps1, w którym chcę zdefiniować niestandardowe funkcje.
Wyobraź sobie, że plik nazywa się MyFunctions.ps1, a zawartość jest następująca:
Write-Host "Installing functions"
function A1
{
Write-Host "A1 is running!"
}
Write-Host "Done"
Aby uruchomić ten skrypt i teoretycznie zarejestrować funkcję A1, przejdź do folderu, w którym znajduje się plik .ps1, i uruchom plik:
.\MyFunctions.ps1
To daje:
Installing functions
Done
Jednak gdy próbuję wywołać A1, po prostu pojawia się błąd stwierdzający, że nie ma polecenia / funkcji o tej nazwie:
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
Muszę źle zrozumieć niektóre koncepcje PowerShell. Czy nie mogę zdefiniować funkcji w plikach skryptów?
Zauważ, że ustawiłem już moją zasadę wykonania na „RemoteSigned”. Wiem, że mogę uruchamiać pliki .ps1 za pomocą kropki przed nazwą pliku:. \ MyFile.ps1