Поиск по сайту:

Set-Variable (Microsoft.PowerShell.Utility)


Set-Variable

Модуль:
Microsoft.PowerShell.Utility

Устанавливает значение переменной. Создает переменную, если переменная с запрошенным именем не существует.

Синтаксис

Set-Variable
   [-Name] <String[]>
   [[-Value] <Object>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Description <String>]
   [-Option <ScopedItemOptions>]
   [-Force]
   [-Visibility <SessionStateEntryVisibility>]
   [-PassThru]
   [-Scope <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

Командлет Set-Variable присваивает значение указанной переменной или изменяет текущее значение. Если переменная не существует, командлет создает ее.

Примеры

Пример 1. Установите переменную и получите ее значение

Эти команды устанавливают значение переменной $desc в Описание, а затем получают значение этой переменной.

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

Пример 2. Установите глобальную переменную, доступную только для чтения.

В этом примере создается глобальная переменная, доступная только для чтения, которая содержит все процессы в системе, а затем отображаются все свойства переменной.

Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
    Format-List -Property *

Команда использует командлет Set-Variable для создания переменной. Он использует параметр PassThru для создания объекта, представляющего новую переменную, и использует оператор конвейера (|) для передачи объекта в Format-List командлет. Он использует параметр Property Format-List со значением all (*) для отображения всех свойств вновь созданной переменной.

Значение (Get-Process) заключено в круглые скобки, чтобы гарантировать, что оно будет выполнено перед сохранением в переменной. В противном случае переменная содержит слова Get-Process.

Пример 3. Понимание общедоступных и частных переменных

В этом примере показано, как изменить видимость переменной на Private. Эта переменная может быть прочитана и изменена скриптами с необходимыми разрешениями, но она не видна пользователю.

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}
Counter               26

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}

$counter

"Cannot access the variable '$counter' because it is a private variable"

.\use-counter.ps1
#Commands completed successfully.

Эта команда показывает, как изменить видимость переменной на Private. Эта переменная может быть прочитана и изменена скриптами с необходимыми разрешениями, но она не видна пользователю.

Параметры

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип :

SwitchParameter

Псевдонимы:

cf

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Description

Задает описание переменной.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Exclude

Указывает массив элементов, которые этот командлет исключает из операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Подстановочные знаки разрешены.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

True

-Force

Позволяет создать переменную с тем же именем, что и существующая переменная, доступная только для чтения, или изменить значение переменной, доступной только для чтения.

По умолчанию вы можете перезаписать переменную, если только переменная не имеет значения параметра ReadOnly или Constant. Дополнительную информацию см. в параметре Option.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Include

Указывает массив элементов, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Name. Введите имя или шаблон имени, например c*. Подстановочные знаки разрешены.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

True

-Name

Указывает имя переменной.

Тип :

String[]

Позиция:

0

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Option

Указывает значение свойства Options переменной.

Допустимые значения:

  • Нет: параметры не устанавливаются. (Нет — значение по умолчанию.)
  • ReadOnly: можно удалить. Невозможно изменить, кроме как с помощью параметра Force.
  • Константа: невозможно удалить или изменить. Константа действительна только при создании переменной. Вы не можете изменить параметры существующей переменной на Constant.
  • Private: переменная доступна только в текущей области.
  • AllScope: переменная копируется во все новые создаваемые области.

Эти значения определяются как перечисление на основе флагов. С помощью этого параметра вы можете объединить несколько значений, чтобы установить несколько флагов. Значения можно передавать в параметр Option как массив значений или как строку этих значений, разделенную запятыми. Командлет объединит значения с помощью операции двоичного ИЛИ. Передача значений в виде массива — самый простой вариант, который также позволяет использовать для значений табуляцию.

Тип :

ScopedItemOptions

Принятые значения:

Нет, только для чтения, постоянный, частный, AllScope, не указано

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-PassThru

Возвращает объект, представляющий новую переменную. По умолчанию этот командлет не генерирует никаких выходных данных.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Scope

Указывает область действия переменной. Допустимые значения этого параметра:

    Global
    Local
    Script
    Private
  • Число относительно текущей области (от 0 до количества областей, где 0 — текущая область, а 1 — ее родительская область).

Локальный — значение по умолчанию.

Дополнительные сведения см. в разделе about_Scopes.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

Местный

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Value

Указывает значение переменной.

Тип :

Объект

Позиция:

1

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Visibility

Определяет, видна ли переменная за пределами сеанса, в котором она была создана. Этот параметр предназначен для использования в скриптах и командах, которые будут доставлены другим пользователям.

Допустимые значения:

  • Public: переменная видна. (Public — значение по умолчанию.)
  • Частный: переменная не видна.

Если переменная является частной, она не отображается в списках переменных, например, возвращаемых командой Get-Variable, или на дисплеях диска Variable:. Команды для чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может запускать команды, использующие частную переменную, если команды были написаны в сеансе, в котором была определена переменная.

Тип :

Сеансстатеэнтривизисити

Принятые значения:

Общественный, Частный

Позиция:

Именованный

Значение по умолчанию:

Общественный

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-WhatIf

Показывает, что произойдет, если командлет запустится. Командлет не запускается.

Тип :

SwitchParameter

Псевдонимы:

wi

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

Объект

В этот командлет можно передать объект, представляющий значение переменной.

Выходы

Нет

По умолчанию этот командлет не возвращает никаких результатов.

PSVariable

При использовании параметра PassThru этот командлет возвращает объект PSVariable, представляющий новую или измененную переменную.

Примечания

PowerShell включает следующие псевдонимы для Set-Variable:

  • Все платформы:

      set
      sv