Windows Powershell — Ввод с клавиатуры

PowerShellДоброго дня! Продолжаем тему Windows Powershell. В прошлой статье мы научились создавать и вызывать функции. При этом, мы задействовали ожидание ввода с клавиатуры. Давайте разберемся как в Powershell реализовать ввод с клавиатуры.

Windows Powershell — ввод с клавиатуры

Вспомним наш пример:

Ключевая строка, которая отвечает за ожидание ввода пользователя — самая последняя. read-host — отвечает за прием входящих введенных символов. В нашем случае обыграно так, что ввод записывается сразу в переменную. Это было необходимо для того, чтобы выбрать одно из трех заранее известных значений. Достаточно простой пример, и в принципе все понятно. Так же и понятно как работает read-host.

Давайте попробуем усложнить. Сделаем так, что если мы ввели значение, которое не относится ни к одному варианту, то выведем ошибку об этом. Для этого преобразуем наш скрипт следующим образом:

Что мы сделали? Во-первых, спасибо Дмитрию, оставившему комментарий в прошлой статье, который подсказал, что файл с функциями можно подключать только в начале файла. Во-вторых запомните именно такой синтаксис в операторе if. Если вы попробуете реализовать кастомный exception с условием -ne (not equals), то условие срабатывать не будет. Это связано с особенностями семантики powershell. В-третьих, теперь если мы ничего не введем, то у нас вылетит ошибка «Вы ничего не выбрали!». В четвертых, у нас целых 2 исключения:

  1. Первое находится в elseif — выпадет в случае, если мы ничего не ввели.
  2. Второе находится в Default — это блок, который выводит значение по умолчанию, если в оператор switch прилетело значение, которого в нем нет.

Так же мы добавили завершение скрипта, если мы ничего не ввели — break;

Итак, давайте попробуем запустить наш скрипт:

Powershell - ввод с клавиатуры

Чтож, надеемся материал был для вас полезен. Сегодня вы научились работать с оператором read-host и немного изучили if statement, создав свою ошибку. На этом все! Оставляйте свои комментарии, если у вас остались вопросы. Подписывайтесь на нашу группу вк и Youtube-канал! Спасибо за внимание!

Лицензионное соглашение

Авторские права публикуемых материалов полностью или частично принадлежат авторам сайта Pechenek.NET в соответствии со статьями 1252 и 1301 ГК РФ. Любое распространение должно быть согласовано с автором материала или с указанием ссылки на первоисточник.