В предыдущей части мы говорили о переменных оболочки Windows PowerShell. Далее нас еще ожидают пользовательские переменные и переменные среды Windows. Сегодня настал через пользовательских переменных.
Пользовательские переменные
Как следует из названия, такие переменные создаются самим пользователем. Создаются они в момент присваивания им значения. Например,
$a=1
Тип переменной определяется автоматически в зависимости от присвоенного ей значения. В этом можно убедиться, проверив тип переменной командлетом Get-Member.
$a | Get-Member
В данном случае тип переменной System.Int32. Более лаконичную информацию мы можем получить при использовании метода GetType().
$a.GetType().FullName
Если мы изменим значение переменной на текстовое, то тип переменной автоматически изменится.
Мы можем указать тип вручную:
[System.Int32]$a=5
Если тип указан вручную, то при изменении значения переменной, это значение будет по возможности преобразовано к указанному типу.
Как видим, мы определили тип переменной $a как System.Int32. Затем мы изменили её значение на текст, заключенный в кавычки. Но 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.
Продолжение следует…
Статьи по теме: