Как в PowerShell определить функцию в файле и вызвать ее из командной строки PowerShell?

У меня есть файл .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

213
задан Peter Mortensen 27 December 2014 в 03:43
поделиться