Главная > Powershell > Трюк с объявлением обязательных параметров в Powershell

Трюк с объявлением обязательных параметров в Powershell

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

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

function Get-Something
{
    param
    (
        [Parameter(Mandatory = $true)]
        $Word 
    )
    "Вы ввели слово $Word"
}

При вызове этой функции без указания параметра Powershell выдаст стандартное сообщение о том, что мы забыли указать параметр:

PS C:\> Get-Something

Командлет Get-Something в конвейере команд в позиции 1
Укажите значения для следующих параметров:
Word:

Но есть и другой путь.

Если мы объявим параметр таким образом:

function Get-Something
{
    param
    (
        $Word = $(Read-Host 'Введите слово')
    )

    "Вы ввели слово $Word."
}

Результат будет такой же. Но такой способ добавит нашей функции больше гибкости в том плане, что мы сами задаём сообщение с требованием ввести параметр:

PS C:\> Get-Something
Введите слово:

Я вижу два преимущества при таком задании параметров: во-первых, меньше текста при вызове функции, во-вторых, это может быть удобно в случае, когда приходится писать скрипты не для себя, чтоб у людей не возникали вопросы, связанные с непониманием стандартных сообщений. Хотя, общая рекомендация заключается в максимальном приближении своих функций к стандартным функциям и командлетам Powershell.

Реклама
Рубрики:Powershell Метки:
  1. Вячеслав
    14/08/2015 в 12:21

    Это потрясающе! И вообще, блог отличный, очень мне помогает!
    Тут часто можно найти то, «о чем молчат другие» 😉 Спасибо за это!

    • 16/08/2015 в 23:13

      Спасибо! Такие слова мотивируют на дальнейшее развитие блога 🙂

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: