Мои функции PowerShell, похоже, не зарегистрированы
У меня есть скрипт ps1, в котором я определяю 2 функции как таковые:
function Invoke-Sql([string]$query) {
Invoke-Sqlcmd -ServerInstance $Server -Database $DB -User $User -Password $Password -Query $query
}
function Get-Queued {
Invoke-Sql "Select * From Comment where AwaitsModeration = 1"
}
Затем я вызываю файл ps1, набирая его (он находится в папке в пути, и автозаполнение работает)
Однако я не могу начать использовать функции. Я в замешательстве, потому что когда я копирую / вставляю функции в консоль, все в порядке, и они работают. У меня также есть функция, определенная в моем профиле, и она работает. Где я неправильно думаю, почему не работает то, что я пытаюсь сделать?
2 ответа
Для того, чтобы функции были доступны, вам нужно "поставить точку" сценария. "Dot Sourcing" запускает скрипт в текущей области видимости.
Для "точечного источника" сценария вы ставите точку, затем пробел, а затем полный или относительный путь к сценарию.
например
. ./myscript.ps1
Посмотрите этот пост о запуске сценариев powershell из командной строки.