Имя поставщика
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
См. также