Работа с функциями PowerShell, передающими и получающими значения - PullRequest
2 голосов
/ 09 мая 2011

Скрипт PowerShell работает из командной строки.

При попытке передать параметр в сценарии, при вызове функции никакие значения не отображаются, чтобы передать значения остальной части программы, которую я пробовал, используя область действия и параметры внутри функции.

Ответы [ 2 ]

4 голосов
/ 09 мая 2011

Образец из вашего сценария очень поможет вам дать точный ответ. Тем не менее, вот общий ответ, который показывает скрипт с функциями и без функций в PowerShell.

Function Sum {
    Param ([int]$a,[int]$b)

    return $a+$b
}

Итак, когда у вас есть это в сценарии, вы указываете сценарий на источник. Таким образом, вы можете вызывать функцию напрямую из cmdline. Например

Sum 4 5 вернет 9.

Теперь без функций, скажем, sum.ps1 имеет следующий код:

Param ([int]$a,[int]$b)
$a+$b

Вы можете позвонить, .\sum.ps1 4 5 на консоли или там, и он вернет 9 снова.

Нет необходимости использовать param(). Вы можете использовать массив $ args для получения параметров. Но имеет смысл связать параметры с типом и дать им имя, используя Param()

1 голос
/ 09 мая 2011

Это то, что вы хотите вызвать определенную функцию в сценарии? Вы можете сделать это путем .sourcing, а затем вызывать. Здесь мы вызываем функцию sign-script, определенную в utils.ps1, передавая аргумент somescript.ps1 функции.

. .\utils.ps1;sign-script somescript.ps1

Обратите внимание на дополнительную точку в начале строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...