К основному контенту

Объекты в PowerShell

При изучении PowerShell очень важно понять некоторые моменты. Основной из них на мой взгляд — это то, что PowerShell  всегда работает с объектами. Текст, выводимый в консоли — лишь описание этих объектов в удобочитаемой форме. Давайте попробуем разобраться, что же такое объект в PowerShell.

В качестве примера возьмем обыкновенный перочинный нож (pocketknife), и попробуем его описать:

  • Цвет, размер, количество предметов и производитель — вот его свойства. Например, нож красного цвета, весит 55 грамм, имеет 3 лезвия, штопор и отвертку и произведен компанией Victorinox.  Другими словами, свойства объекта описывают, как он внешне выглядит и что из себя представляет.
  • Он может резать, крутить и открывать —  методы. Например, этим ножом  можно нарезать колбасу, открыть бутылку с вином или открутить винт. Методы объекта описывают все то,  что им (или с ним) можно сделать.

А теперь возьмем наш реальный ножик и перенесем его вместе со всеми свойствами и методами в PowerShell. Для этого создадим новый объект:

$pocketknife = New-Object  Object

Зададим его цвет:

Add-Member -memberType NoteProperty -name Color -value Red -inputObject $pocketknife

Для удобства написания названия параметров можно писать в сокращенном виде. Зададим вес объекта:

Add-Member -Me NoteProperty —In $pocketknife -Na Weight -Value 55

и производителя

Add-Member -inputObject $pocketknife NoteProperty Manufacturer Victorinox

В большинстве командлетов PowerShell объект можно задавать не только с помощью параметра inputObject но и передавать по конвейеру, поэтому для задания следующего свойства выберем такой метод:

$pocketknife | Add-Member NoteProperty Blades 3

Мы описали наш объект с помощью 4 свойств — цвет, размер, производитель и количество лезвий. Чтобы вывести одно свойство, нужно ввести имя объекта.свойство, например:

$pocketknife.manufacturer


Задаем свойства объекта

Свойства мы задали, теперь перейдем к методам.

Добавим новый метод:

Add-Member -memberType ScriptMethod —In $pocketknife -name cut -Value { «Сейчас я режу» }

При задании методов имена параметров  можно опустить:

Add-Member —in $pocketknife ScriptMethod screw { «А сейчас отвинчиваю» }

Или передать по конвейеру:

$pocketknife | Add-Member ScriptMethod corkscrew { «И открываю пробку» }

А теперь попробуем воспользоваться своим виртуальным ножом по назначению:

$pocketknife.cut()

«Сейчас я режу»

Объект $pocketknife выдал команду (script), которую мы заложили в метод cut . Чтобы узнать подробную информацию об этом методе, наберем:

$pocketknife.cut


Задаем методы объекта

Свойства (properties) и методы (methods) вместе составляют сущность объекта и называются элементами (members). Посмотреть все элементы объекта можно командой Get-Member


Все свойства и методы объекта

Нашим виртуальным ножом невозможно воспользоваться в реальности. Однако я надеюсь, что он помог вам понять, что из себя представляют объекты в PowerShell .  В следующей статье мы рассмотрим, что можно сделать с объектом, используя его свойства и методы.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…