Поделиться через


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 командлет , чтобы изменить имя переменной на aprocesses.

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:

См. также раздел