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
Указывает область действия переменной. Допустимые значения этого параметра:
GlobalLocalScriptPrivateЛокальный — значение по умолчанию.
Дополнительные сведения см. в разделе 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