Переменные в Windows PowerShell, часть 2

В предыдущей части мы говорили о переменных оболочки Windows PowerShell. Далее нас еще ожидают пользовательские переменные и переменные среды Windows. Сегодня настал через пользовательских переменных.

Пользовательские переменные

Как следует из названия, такие переменные создаются самим пользователем. Создаются они в момент присваивания им значения. Например,

$a=1

Тип переменной определяется автоматически в зависимости от присвоенного ей значения. В этом можно убедиться, проверив тип переменной командлетом Get-Member.

$a | Get-Member

Переменные в Windows PowerShell

В данном случае тип переменной System.Int32. Более лаконичную информацию мы можем получить при использовании метода GetType().

$a.GetType().FullName

Переменные в Windows PowerShell

Если мы изменим значение переменной на текстовое, то тип переменной автоматически изменится.

Переменные в Windows PowerShell

Мы можем указать тип вручную:

[System.Int32]$a=5

Если тип указан вручную, то при изменении значения переменной, это значение будет по возможности преобразовано к указанному типу.

Переменные в Windows PowerShell

Как видим, мы определили тип переменной $a как System.Int32. Затем мы изменили её значение на текст, заключенный в кавычки. Но PowerShell преобразовал его к числу.

Как уже было сказано, Windows PowerShell преобразует значения переменных в заданный формат по возможности. Например, не каждый текст возможно свести к числу. Если это невозможно, Вы увидите вот такую ошибку:

Переменные в Windows PowerShell
Невозможность преобразования переменной к заданному типу

Вместо указания подробного имени типа переменной, гораздо удобнее пользоваться псевдонимами типов.

[int]$a=5

Ниже приведены псевдонимы основных типов переменных в PowerShell.

Псевдоним Тип переменных
[int] System.Int32
[int[]] System.Int32[] (массив элементов типа System.Int32)
[long] System.Int64
[long[]] System.Int64[] (массив элементов типа System.Int64)
[string] System.String
[string[]] System.String[] (массив элементов типа System.String)
[char] System.Char
[char[]] System.Char[] (массив элементов типа System.Char)
[bool] System.Boolean
[bool[]] System.Boolean[] (массив элементов типа System.Boolean)
[byte] System.Byte
[byte[]] System.Byte[] (массив элементов типа System.Byte)
[double] System.Double
[double[]] System.Double[] (массив элементов типа System.Double)
[decimal] System.Decimal
[decimal[]] System.Decimal[] (массив элементов типа System.Decimal)
[float] System.Float
[single] System.Single
[regex] System.Text.RegularExpressions.regex
[array] System.Array
[xml] System.Xml.XmlDocument
[scriptblock] System.Management.Automation.ScriptBlock
[switch] System.Management.Automation.SwitchParameter
[hashtable] System.Collections.Hashtable
[psobject] System.Management.Automation.PSObject
[type] System.Type

На этом пока всё, что нам нужно знать о пользовательских переменных. Далее поговорим о переменных среды Windows.

Продолжение следует…

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

Ваш адрес email не будет опубликован.