Set-Variable
Задает значение переменной. Создает переменную, если переменной с запрошенным именем не существует.
Синтаксис
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
A description
, а затем получает значение переменной.
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
. Он использует параметр Format-List
Property со значением всех (*
) для отображения всех свойств только что созданной переменной.
Значение, (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 |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Description
Задает описание переменной.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Exclude
Указывает массив элементов, которые этот командлет исключает из операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
.
Разрешено использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Force
Позволяет создать переменную с тем же именем, как у существующей переменной только для чтения, или изменить значение переменной только для чтения.
По умолчанию можно перезаписать переменную, если переменная не имеет значения ReadOnly
параметра или Constant
. Дополнительные сведения см. в параметре Option .
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Include
Указывает массив элементов, которые этот командлет включает в операцию. Значение этого параметра определяет значение параметра Name. Введите имя или шаблон имени, например c*
. Разрешено использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Name
Определяет имя переменной.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Option
Задает значение свойства Options переменной.
Допустимые значения:
None
: не задает параметры. (None
используется по умолчанию.)ReadOnly
: можно удалить. Невозможно изменить, за исключением использования параметра Force.Constant
: невозможно удалить или изменить.Constant
допустимо только при создании переменной. Нельзя изменить параметры существующей переменнойConstant
на .Private
: переменная доступна только в текущей области.AllScope
: переменная копируется в все созданные области.
Эти значения определяются как перечисление на основе флага. Можно объединить несколько значений, чтобы задать несколько флагов с помощью этого параметра. Значения можно передать параметру Option в виде массива значений или в виде строки, разделенной запятыми этих значений. Командлет объединяет значения с помощью операции binary-OR. Передача значений в виде массива является самым простым параметром, а также позволяет использовать завершение табуляции для значений.
Тип: | ScopedItemOptions |
Допустимые значения: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект, представляющий новую переменную. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Scope
Указывает область переменной. Допустимые значения для этого параметра:
Global
Local
Script
Private
- Число относительно текущей области (от 0 до числа областей, где 0 является текущей областью, а 1 — родительским).
Значение по умолчанию — Local
.
Дополнительные сведения см. в about_Scopes.
Тип: | String |
Position: | Named |
Default value: | Local |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Value
Задает значение переменной.
Тип: | Object |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Visibility
Определяет, видима ли переменная вне сеанса, в котором она была создана. Этот параметр предназначен для использования в скриптах и командах, которые будут переданы другим пользователям.
Допустимые значения:
Public
: переменная видна. (Public
используется по умолчанию.)Private
: переменная не видна.
Если переменная является частной, она не отображается в списках переменных, таких как возвращаемые Get-Variable
или в дисплеях переменной : диск. Команды чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может выполнять команды, использующие частную переменную, если они были написаны в сеансе, в котором определена переменная.
Тип: | SessionStateEntryVisibility |
Допустимые значения: | Public, Private |
Position: | Named |
Default value: | Public |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объект, представляющий значение переменной, можно передать этому командлету.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект PSVariable , представляющий новую или измененную переменную.
Примечания
PowerShell включает следующие псевдонимы для Set-Variable
:
- Все платформы:
set
sv
Связанные ссылки
PowerShell