У меня есть файл .ps1, в котором я хочу определить пользовательские функции.
Представьте, что файл называется MyFunctions.ps1, а его содержимое выглядит следующим образом:
Write-Host "Installing functions"
function A1
{
Write-Host "A1 is running!"
}
Write-Host "Done"
Чтобы запустить этот скрипт и теоретически зарегистрировать функцию A1, я перехожу к папке, в которой находится файл .ps1, и запускаю файл:
.\MyFunctions.ps1
Это выводит:
Installing functions
Done
Тем не менее, когда я пытаюсь вызвать A1, я просто получаю сообщение об ошибке, в котором говорится, что нет команды / функции с таким именем:
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
Я должен неправильно понять некоторые концепции PowerShell. Могу ли я не определять функции в файлах скриптов?
Обратите внимание, что я уже установил мою политику выполнения на «RemoteSigned». И я знаю, что запускать файлы .ps1, используя точку перед именем файла:. \ MyFile.ps1