Использование инструкции в PowerShell

Ispol Zovanie Instrukcii V Powershell



PowerShell — это надежная оболочка командной строки и язык сценариев, которые в основном используются для управления компьютерными системами и автоматизации административных задач. Использование операторов — одна из важнейших основ PowerShell. В частности, « с использованием ” играет решающую роль в управлении ресурсами и обеспечении эффективного выполнения кода.

В этой статье будут рассмотрены различные аспекты оператора «using» в PowerShell, включая его синтаксис, назначение и практическое применение.







Цель заявления «использование»

Оператор «using» позволяет указать, какие пространства имен используются в сеансе. Добавляя пространства имен, вы можете импортировать классы из модулей и сборок сценариев и упростить использование классов и членов .NET.



НЕОБХОДИМО использовать заявление

  • Оператор «using» должен стоять перед любыми другими операторами сценария или модуля. Ему не могут предшествовать какие-либо незакомментированные операторы, включая параметры.
  • Никакие переменные не должны присутствовать в операторе «using».
  • Оператор «using» не следует путать с модификатором области видимости «using:» для переменных. Оба они различны по своему назначению и значению.

Синтаксис оператора «using»



Синтаксис оператора «using»:





используя пространство имен < .NET-пространство имен >

Давайте рассмотрим следующий пример:



используя пространство имен System.IO

$ байт '=' [ Файл ] ::ReadAllBytes ( 'D:\c Sharp\Linuxhint1.txt' )
[ Информация о файле ] ::новый ( 'D:\c Sharp\Linuxhint1.txt' )

В приведенном выше коде мы сначала обозначили пространство имен «System.IO». Вторая строка программы, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), считывает каждый байт из предоставленного файла и помещает его в переменную $Bytes. В третьей строке [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) создает новый экземпляр класса FileInfo и возвращает объект FileInfo.

Оператор «using» для модулей

Мы также можем использовать оператор «using» для загрузки классов модуля.

Синтаксис

используя модуль < имя модуля >

В этом синтаксисе «<имя модуля>», полная спецификация модуля или путь к файлу модуля могут использоваться в качестве значения для «имя модуля».

Вы можете использовать как полный, так и относительный путь, когда «имя-модуля>» является путем. Когда в сценарии присутствует оператор «using», в этом сценарии разрешается относительный путь.

PowerShell ищет предоставленный модуль в PSModulePath, когда «<имя-модуля>» является именем или спецификацией модуля. Следующие ключи составляют хеш-таблицу, которая является спецификацией модуля:

ИмяМодуля - Необходимый. Называет рассматриваемый модуль.

Необязательный идентификатор GUID – указывает GUID модуля.

Кроме того, необходимо указать один из трех ключей, перечисленных ниже.

Версия модуля – Минимально допустимая версия модуля задается через свойство «ModuleVersion».

Максимальная версия – Определяет наивысшую допустимую версию модуля.

Требуемая версия – Определяет точную, необходимую версию модуля, используя «RequiredVersion». Другие ключи версии не могут использоваться с этим.

Корневой модуль (ModuleToProcess) бинарного модуля или модуля скрипта импортируется с помощью объявления «использующего» модуля. Классы, указанные во вложенных модулях или сценариях, которые являются точечными источниками в модуле, импортируются ненадежно. Любые классы, которые вы хотите сделать доступными для пользователей за пределами модуля, должны быть указаны в корневом модуле.

Вот пример:

с помощью модуля PSReadline

Оператор «using» для сборки

Оператор «using» также можно использовать для предварительной загрузки типов из сборки .NET.

Синтаксис

используя сборку < .NET-путь сборки >

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

Посмотрите на пример применения оператора «using» к «сборке»:

используя сборку System.Windows.Forms

В этой команде мы загрузили сборку « Система.Windows.Forms» в PowerShell с помощью инструкции «using».

Оператор «using» для ключей Hashtable

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

Криптографический хеш для строки « LinuxПодсказка! » получается с помощью следующего скрипта:

используя пространство имен System.Text
используя пространство имен System.IO [ нить ] $строка '=' 'Линукс, подсказка!'
[ нить ] $алгоритм '=' 'ША1'

[ байт [ ] ] $stringbytes '=' [ UnicodeEncoding ] ::Unicode.GetBytes ( $строка )

[ Транслировать ] $memystream '=' [ ПамятьПоток ] ::новый ( $stringbytes )
$hashfromstream = Get-FileHash -InputStream $memystream `
-Алгоритм $алгоритм
$hashfromstream .Хэш.ToString ( )

Приведенный выше код PowerShell начинается с импорта пространств имен, необходимых для файловых операций и кодирования. Входная строка и алгоритм хеширования (в данном случае « SHA1 »), затем определяются. Затем входная строка кодируется с использованием « Юникод », чтобы создать массив байтов.

Содержимое массива байтов затем используется для построения « поток памяти ». Хэш-значение из потока памяти вычисляется с использованием предоставленного алгоритма «SHA1» методом « Get-FileHash ” командлет. Скрипт завершается выводом полученного хеш-значения в виде строки на выходе.

Выход

Заключение

с использованием ” в PowerShell — это мощный инструмент для указания пространств имен, модулей или сборок. Его синтаксис и назначение обеспечивают стандартизированный и безопасный подход к работе с ресурсами, облегчая их правильную утилизацию и уменьшая дублирование кода.