Имя поставщика

Variable

Диски

Variable:

Краткое описание

Предоставляет доступ к переменным Windows PowerShell и их значениям.

Подробное описание

Поставщик Windows PowerShell Variable позволяет извлекать, добавлять, изменять, очищать и удалять переменные Windows PowerShell в текущей консоли.

Поставщик Windows PowerShell Variable поддерживает переменные, которые создает оболочка Windows PowerShell, включая автоматические переменные, привилегированные переменные, а также переменные, создаваемые пользователем.

Поставщик Variable представляет собой плоское пространство имен, содержащее только объекты переменных. У данных переменных нет дочерних элементов.

Большая часть переменных являются экземплярами класса System.Management.Automation.PSVariable. Однако есть и исключения. Например, переменная "?" является членом класса QuestionMarkVariable, а переменная "MaximumVariableCount" является членом класса SessionStateCapacityVariable.

Поставщик Variable отображает свое хранилище данных как диск Variable:. Для работы с переменными можно перейти на диск Variable: ("set-location variable:") или работать с любого другого диска Windows PowerShell. Для ссылки на переменную из другого положения следует использовать в пути имя диска (Variable:).

Windows PowerShell включает набор командлетов, специально предназначенных для просмотра и изменения переменных:

-- Get-Variable

-- New-Variable

-- Set-Variable

-- Remove-Variable

-- Clear-Variable

При использовании этих командлетов не нужно указывать диск "Variable:" в имени.

Поставщик Variable поддерживает все командлеты, в именах которых содержится существительное Item (командлеты Item), кроме Invoke-Item. Поставщик Variable поддерживает командлеты Get-Content и Set-Content. Однако он не поддерживает командлеты, в именах которых содержится существительное ItemProperty (командлеты ItemProperty), и не поддерживает параметр Filter в любом командлете.

Для создания, просмотра и изменения значений переменных без использования командлетов можно также использовать средство синтаксического анализа выражений оболочки Windows PowerShell. При непосредственной работе с переменными используйте знак доллара ($), чтобы определить имя как переменную, а также оператор назначения (=) для присвоения и изменения значений переменных. Например, команда "$p = Get-Process" создает переменную "p" и сохраняет в ней результаты работы команды "Get-Process".

Все изменения в переменных затрагивают только текущий сеанс. Чтобы сохранить изменения, добавьте их в профиль Windows PowerShell или воспользуйтесь командлетом Export-Console для сохранения текущей консоли.

Примеры

Обращение к диску Variable:

-------------------------- ПРИМЕР 1 --------------------------

Эта команда меняет текущее положение на диск Variable:. Эту команду можно использовать с любого диска в оболочке Windows PowerShell. Чтобы вернуться к диску файловой системы, введите имя диска. Например, введите команду "set-location c:".

set-location variable:

Отображение значений переменных

-------------------------- ПРИМЕР 1 --------------------------

Эта команда возвращает список всех переменных в текущем сеансе. Эту команду можно использовать с любого диска Windows PowerShell.

get-childitem -path variable:

-------------------------- ПРИМЕР 2 --------------------------

Эта команда получает переменные с именами, которые начинаются на "max". Эту команду можно использовать с любого диска Windows PowerShell.

get-childitem -path variable:max*

Если диск Variable: уже открыт, имя этого диска в пути можно не указывать.

-------------------------- ПРИМЕР 3 --------------------------

Эта команда возвращает значение переменной WhatIfPreference, если набрать ее в командной строке.

Имя переменной предваряется знаком доллара ($) для указания того, что это переменная. Имя диска Variable: не указано.

$WhatIfPreference

-------------------------- ПРИМЕР 4 --------------------------

Эта команда использует параметр LiteralPath командлета Get-ChildItem для получения значения переменной "?" с диска Variable:. Командлет Get-ChildItem не пытается разрешить никакие подстановочные знаки в значениях параметра LiteralPath.

get-childitem -literalpath ?

Для отображения значения переменной с именем, содержащим специальные знаки, без использования командлета, наберите знак доллара ($) и имя переменной. Например, для отображения значения переменной "?" наберите "$?".

-------------------------- ПРИМЕР 5 --------------------------

Эта команда возвращает переменные, свойство Options которых имеет значение "ReadOnly" или "Constant".

get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options

Создание новой переменной

-------------------------- ПРИМЕР 1 --------------------------

Эта команда создает переменную "services" и сохраняет в ней результаты, возвращенные командлетом Get-Service. Так как текущим местоположением является диск Variable:, значение параметра Path — точка (.), которая означает текущее размещение.

Круглые скобки вокруг команды Get-Service гарантируют, что команда будет выполнена до создания переменной. Если круглые скобки не указаны, значением новой переменной станет строка "Get-Service".

new-item -path . -name services -value (Get-Service)

Если текущим положением не является диск Variable:, включите имя диска Variable: в путь.

-------------------------- ПРИМЕР 2 --------------------------

Эта команда создает переменную "services" и сохраняет в ней результат, возвращенный командой Get-Service.

Команда использует знак доллара ($) для определения переменной и оператор присваивания (=) для присваивания результата работы команды Get-Service значению только что созданной переменной.

$services = Get-Service

Чтобы создать переменную без значения, опустите оператор присваивания.

Отображение свойств и методов переменных

-------------------------- ПРИМЕР 1 --------------------------

Эта команда использует командлет Get-Item для получения всех переменных. Результаты с помощью оператора конвейера (|) передаются командлету Get-Member, который отображает методы и свойства объекта.

get-item -path variable:* | get-member

При передаче коллекции объектов (например, коллекции переменных на диске Variable:) по конвейеру командлету Get-Member командлет Get-Member проводит оценку каждого объекта коллекции по отдельности и выводит сведения о каждом найденном типе объектов. Для получения сведений о коллекции объектов на диске Variable: используйте параметр InputObject командлета Get-Member, например "get-member -inputobject (get-item variable:*)". При использовании параметра InputObject командлет Get-Member выполняет оценку всей коллекции, а не отдельных объектов из нее.

-------------------------- ПРИМЕР 2 --------------------------

Эта команда перечисляет значения свойств переменной "home". Она использует командлет Get-Item для получения объекта, представляющего переменную "home". Оператор конвейера (|) передает результаты команде Format-List. Команда Format-List использует параметр Property с подстановочным знаком (*) для форматирования и отображения значений всех свойств переменной "home".

get-item variable:home | format-list -property *

Изменение свойств переменной

-------------------------- ПРИМЕР 1 --------------------------

Эта команда использует командлет Rename-Item для изменения имени переменной "a" на "processes".

rename-item -path variable:a -newname processes

-------------------------- ПРИМЕР 2 --------------------------

Эта команда использует командлет Set-Item для задания переменной ErrorActionPreference значения "Stop".

set-item -path variable:ErrorActionPreference -value Stop

-------------------------- ПРИМЕР 3 --------------------------

Эта команда изменяет значение переменной ErrorActionPreference на "Stop".

Она использует знак доллара ($) для определения переменной и оператор назначения (=) для присвоения значения.

$ErrorActionPreference = Stop

Копирование переменной

-------------------------- ПРИМЕР 1 --------------------------

Эта команда использует командлет Copy-Item для копирования переменной "processes" в "old_processes". При этом создается новая переменная с именем "old_processes", которая содержит то же значение, что и переменная "processes".

copy-item -path variable:processes -destination variable:old_processes

Если команда вводится при открытом диске Variable:, можно не указывать имя диска в значении параметра Path.

-------------------------- ПРИМЕР 2 --------------------------

Эта команда копирует переменную "processes" в "old_processes" без использования командлета. Она использует знак доллара ($) для определения переменной и оператор назначения для присвоения переменной old_processes значения переменной $processes.

$old_processes = $processes

Удаление переменной

-------------------------- ПРИМЕР 1 --------------------------

Эта команда удаляет переменную "serv" из текущего сеанса. Эту команду можно использовать на любом диске Windows PowerShell.

remove-variable -path variable:serv

-------------------------- ПРИМЕР 2 --------------------------

Эта команда удаляет все переменные из текущего сеанса, кроме переменных, в свойстве Options которых содержится значение Constant. Если не задан параметр Force, команда не удаляет переменные со значением ReadOnly свойства Options.

remove-item variable:* -force

Задание переменной значения NULL

-------------------------- ПРИМЕР 1 --------------------------

Эта команда использует командлет Clear-Item, чтобы изменить значение переменной "processes" на NULL.

clear-item -path variable:processes

-------------------------- ПРИМЕР 2 --------------------------

Эта команда очищает значение переменной "processes", назначая ей значение NULL. Она использует автоматическую переменную $null, представляющую значение NULL.

$processes = $null

См. также