about_Variable_Provider
Имя поставщика
Переменная
Диски
Variable:
Возможности
ShouldProcess
Краткое описание
Предоставляет доступ к переменным PowerShell и их значениям.
Подробное описание
Поставщик переменных PowerShell позволяет получать, добавлять, изменять, очищать и удалять переменные PowerShell в текущей консоли.
Поставщик переменных PowerShell поддерживает переменные, создаваемые PowerShell, включая автоматические переменные, переменные предпочтения и создаваемые переменные.
Диск переменных — это неструктурированное пространство имен, содержащее только объекты переменных. Переменные не имеют дочерних переменных.
Поставщик переменных поддерживает следующие командлеты, которые рассматриваются в этой статье.
PowerShell также включает набор командлетов, предназначенных специально для просмотра и изменения переменных. При использовании командлетов Variable указывать диск в имени не нужно Variable:
. В этой статье не рассматривается работа с командлетами Variable .
Примечание
Средство синтаксического анализа выражений PowerShell также можно использовать для создания, просмотра и изменения значений переменных без использования командлетов . При работе с переменными напрямую используйте знак доллара ($
), чтобы определить имя как переменную, а оператор присваивания (=
) — для определения и изменения ее значения. Например, $p = Get-Process
создает p
переменную и сохраняет в ней Get-Process
результаты команды.
Типы, предоставляемые этим поставщиком
Переменные могут быть одного из нескольких разных типов. Большинство переменных будут экземплярами PSVariable
класса . Ниже перечислены другие переменные и их типы.
- Переменная
?
является экземпляромQuestionMarkVariable
класса . - Переменная
null
является экземпляромNullVariable
класса . - Переменные максимального числа являются экземплярами
SessionStateCapacityVariable
класса . LocalVariable
экземпляры содержат сведения о текущем выполнении, например:MyInvocation
PSCommandPath
PSScriptRoot
PSBoundParameters
args
input
Навигация по дискам с переменными
Поставщик переменных предоставляет хранилище данных на Variable:
диске. Для работы с переменными можно изменить расположение на диск (Set-Location Variable:
) или с любого другого Variable:
диска PowerShell. Чтобы ссылаться на переменную из другого расположения, используйте имя диска (Variable:
) в пути.
Set-Location Variable:
Чтобы вернуться к диску файловой системы, введите имя диска. Например, введите:
Set-Location C:
Вы также можете работать с поставщиком переменных с любого другого диска PowerShell. Чтобы сослаться на переменную из другого расположения, используйте имя Variable:
диска в пути.
Примечание
PowerShell использует псевдонимы, чтобы обеспечить привычный способ работы с путями поставщика. Такие команды, как dir
и ls
теперь являются псевдонимами для Get-ChildItem, cd
являются псевдонимами для Set-Location. и pwd
является псевдонимом get-Location.
Отображение значения переменных
Получение всех переменных в текущем сеансе
Эта команда возвращает список всех переменных и их значений в текущем сеансе. Эту команду можно использовать на любом диске PowerShell.
Get-ChildItem -Path Variable:
Получение переменной с помощью пути к поставщику
Эта команда извлекает значение переменных, используя путь поставщика с префиксом знака доллара ($
). Это имеет тот же эффект, что и префикс имени переменных знаком доллара ($
).
$variable:home
Получение переменных с помощью подстановочных знаков
Эта команда возвращает переменные с именами, которые начинаются на "max". Эту команду можно использовать на любом диске PowerShell.
Get-ChildItem -Path Variable:max*
Получение значения ? Переменная
Эта команда использует -LiteralPath
параметр Get-ChildItem для получения значения переменной ?
из Variable:
диска. Является ?
подстановочным знаком в путях, но Get-ChildItem
не пытается разрешить какие-либо подстановочные знаки в значениях -LiteralPath
параметра.
Get-ChildItem -Literalpath ?
Получение переменных ReadOnly и Constant
Эта команда получает переменные, имеющие значения ReadOnly
или Constant
для свойства Options .
Get-ChildItem -Path Variable: | Where-Object {
$_.options -Match "Constant" `
-or $_.options -Match "ReadOnly"
} | Format-List -Property name, value, options
Создание переменных
Create новой переменной
Эта команда создает services
переменную и сохраняет в ней Get-Service
результаты команды. Так как текущее расположение находится на Variable:
диске, значение -Path
параметра — точка (.
), представляющая текущее расположение.
Круглые скобки вокруг Get-Service
команды гарантируют, что команда будет выполнена перед созданием переменной. Если круглые скобки отсутствуют, значением новой переменной станет строка "Get-Service".
New-Item -Path . -Name services -Value (Get-Service)
Create переменной с использованием абсолютного пути
Эта команда создает переменную services
и сохраняет в ней Get-Service
результат команды.
New-Item -Path Variable:services -Value Get-Service
Чтобы создать переменную без значения, опустите оператор присваивания.
Изменение переменных
Переименование переменной
Эта команда использует Rename-Item
командлет , чтобы изменить имя переменной на a
processes
.
Rename-Item -Path Variable:a -NewName processes
Изменение значения переменной
Эта команда использует Set-Item
командлет , чтобы изменить значение переменной ErrorActionPreference
на "Stop".
Set-Item -Path Variable:ErrorActionPreference -Value Stop
Копирование переменной
Эта команда использует Copy-Item
командлет для копирования переменной old_processes
в processes
. При этом создается новая переменная с именем old_processes
, которая имеет то же значение, что и processes
переменная .
Copy-Item -Path Variable:processes -Destination Variable:old_processes
Удаление переменной
Эта команда удаляет serv
переменную из текущего сеанса. Эту команду можно использовать на любом диске PowerShell.
Remove-Variable -Path Variable:serv
Удаление переменных с помощью параметра -Force
Эта команда удаляет все переменные из текущего сеанса, за исключением переменных, свойство Options которых имеет значение Constant
. -Force
Без параметра команда не удаляет переменные, свойство Options которых имеет значение ReadOnly
.
Remove-Item Variable:* -Force
Установка значения переменной в значение NULL
Эта команда использует Clear-Item
командлет для изменения значения переменной processes
на NULL.
Clear-Item -Path Variable:processes
Использование конвейера
Командлеты поставщика принимают входные данные конвейера. Конвейер можно использовать для упрощения задачи, отправляя данные поставщика из одного командлета в другой. Дополнительные сведения об использовании конвейера с командлетами поставщика см. в справочниках по командлетам, приведенным в этой статье.
Получение справки
Начиная с Windows PowerShell 3.0, стали доступны настраиваемые разделы справки по командлетам поставщика, в которых объясняется поведение этих командлетов на диске файловой системы.
Чтобы получить разделы справки, настроенные для диска файловой системы, выполните команду Get-Help на диске файловой системы или используйте -Path
параметр Get-Help , чтобы указать диск файловой системы.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path variable: