В своем изучении PowerShell мы уже имели дело с переменными. Настало время поговорить о них подробнее.
Переменные в Windows PowerShell всегда начинаются со знака доллара ($). Переменные создаются в момент присваивания им первого значения, так что отдельно это делать не надо.
Переменные в PowerShell делятся на переменные оболочки (имеет в виду оболочка PowerShell), пользовательские переменные и переменные среды (или окружения, т.е. операционной системы Windows).
Переменные оболочки PowerShell
Это будет первый тип переменных, который мы разберем. Данные переменные присутствуют в каждом сеансе PowerShell и доступны всем командам, сценариям и приложениям. Существуют два вида переменных оболочки:
- Автоматические переменные — в них хранятся параметры состояния оболочки PowerShell. Данные переменные используются системой и их значения не должны меняться пользователем.
- Переменные настроек — в них хранятся настройки текущего пользователя. Эти переменные также создаются оболочной PowerShell и доступны для изменения пользователям.
Ниже приведены часто использующиеся переменные оболочки.
| Переменная | Описание |
| $$ | Содержит последнее слово (или знак) последней полученной оболочкой строки |
| $? | Показывает, успешно ли завершилась последняя операция |
| $^ | Первое слово (или знак) последней полученной оболочной строки |
| $_ | При использовании в блоках сценариев, фильтрах и инструкции Where содержит текущий объект конвейера |
| $Args | Содержит массив параметров, передаваемых в функцию |
| $DebugPreference | Указывает действие, которое необходимо выполнить при записи данных с помощью командлета Write-Debug |
| $Error | Содержит объекты, для которых возникла ошибка при обработке в командлете |
| $ErrorActionPreference | Указывает действие, которое необходимо выполнить при записи данных с помощью командлета Write-Error |
| $ForEach | Обращается к итератору в цикле ForEach |
| $Home | Указывает домашний каталог пользователя |
| $Input | Используется в блоках сценариев, находящихся в конвейере |
| $LASTEXITCODE | Содержит код завершения последнего выполнения исполнимого файла Win32 |
| $MaximumAliasCount | Максимальное число псевдонимов, доступных сеансу |
| $MaximumDriveCount | Максимальное число доступных дисков, кроме предоставляемых операционной системой |
| $MaximumFunctionCount | Максимальное число функций, доступных сеансу |
| $MaximumHistoryCount | Максимальное число записей, сохраненных в истории команд |
| $MaximumVariableCount | Максимальное число переменных, доступных сеансу |
| $PSHome | Показывает имя каталога, в который установлен Windows PowerShell |
| $Host | Содержит сведения о текущем узле |
| $OFS | Используется в качестве разделителя при преобразовании массива в строку, по умолчанию имеет значение пробела |
| $ReportErrorShowExceptionClass | Если значение переменной $True, показывает имена класса выведенных исключений |
| $ReportErrorShowInnerException | Если значение переменной $True, показывает цепочку внутренних исключений |
| $ReportErrorShowSource | Если значение переменной $True, показывает имена сборок выведенных исключений |
| $ReportErrorShowStackTrace | Если значение переменной $True, происходит трассировка стека исключений |
| $StackTrace | Содержит подробные сведения трассировки стека на момент последней ошибки |
| $VerbosePreference | Указывает действие, которое нужно выполнить, если данные записываются с помощью командлета Write-Verbose |
| $WarningPreference | Указывает действие, которое нужно выполнить при записи данных с помощью командлета Write-Warning в сценарии |
В следующей части поговорим о пользовательских переменных и переменных среды Windows.
Продолжение следует…
Статьи по теме: