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