В предыдущей части мы говорили о переменных оболочки 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.
Продолжение следует…