New-Variable
Создает новую переменную.
Синтаксис
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет New-Variable
создает новую переменную в PowerShell. Значение для переменной можно назначить при ее создании или изменив созданное значение.
Параметры можно использовать New-Variable
для задания свойств переменной, задания области переменной и определения того, являются ли переменные общедоступными или частными.
Как правило, вы создаете новую переменную, введя имя переменной и его значение, например $Var = 3
, но командлет можно использовать New-Variable
для использования его параметров.
Примеры
Пример 1. Создание переменной
New-Variable days
Эта команда создает новую переменную с именами дней. Не требуется вводить параметр Name .
Пример 2. Создание переменной и назначение ей значения
New-Variable -Name "zipcode" -Value 98033
Эта команда создает переменную с именем zipcode и назначает ей значение 98033.
Пример 3. Создание переменной с параметром ReadOnly
PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (max:String) [New-Variable], SessionStateException
+ FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand
PS C:\> New-Variable -Name max -Value 1024 -Force
В этом примере показано, как использовать ReadOnly
параметр New-Variable
защиты переменной от перезаписи.
Первая команда создает новую переменную с именем Max и задает для нее значение 256. Он использует параметр Option со значением ReadOnly
.
Вторая команда пытается создать вторую переменную с таким же именем. Эта команда возвращает ошибку, поскольку для переменной задан параметр "только для чтения".
Третья команда использует параметр Force для переопределения защиты только для чтения в переменной. В этом случае команда создания новой переменной с тем же именем успешно выполняется.
Пример 4. Назначение нескольких параметров переменной
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
В этом примере создается переменная и присваиваются AllScope
параметры, Constant
поэтому переменная будет доступна в текущей области и любые новые области, созданные и не могут быть изменены или удалены.
Пример 5. Создание частной переменной
Эта команда демонстрирует поведение частной переменной в модуле. Модуль содержит Get-Counter
командлет, имеющий частную переменную с именем Counter. Команда использует параметр Видимости со значением Private для создания переменной.
PS C:\> New-Variable -Name counter -Visibility Private
#Effect of private variable in a module.
PS C:\> Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
PS C:\> $counter
"Cannot access the variable '$counter' because it is a private variable"
At line:1 char:1
+ $counter
+ ~~~~~~~~
+ CategoryInfo : PermissionDenied: (counter:String) [], SessionStateException
+ FullyQualifiedErrorId : VariableIsPrivate
PS C:\> Get-Counter
Name Value
---- -----
Counter1 3.1415
...
В примере выходных данных показано поведение частной переменной. Пользователь, загрузивший модуль, не может просматривать или изменять значение переменной Counter, но переменную Counter можно прочитать и изменить с помощью команд в модуле.
Пример 6. Создание переменной с пробелом
В этом примере показано, что можно создать переменные с пробелами. К переменным можно получить доступ с помощью командлета Get-Variable
или напрямую, разделив переменную с фигурными скобками.
PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'
PS C:\> Get-Variable -Name 'with space'
Name Value
---- -----
with space abc123xyz
PS C:\> ${with space}
abc123xyz
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Description
Указывает описание переменной.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Указывает, что командлет создает переменную с тем же именем, что и существующая переменная только для чтения.
По умолчанию можно перезаписать переменную, если переменная не имеет значения ReadOnly
параметра или Constant
. Дополнительные сведения см. в параметре Option .
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает имя новой переменной.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Option
Задает значение свойства Options переменной. Допустимые значения для этого параметра:
None
— не задает параметры. Значение по умолчанию —None
.ReadOnly
— Можно удалить. Невозможно изменить, за исключением использования параметра Force .Private
— переменная доступна только в текущей области.AllScope
— переменная копируется в все созданные области.Constant
— Невозможно удалить или изменить.Constant
допустимо только при создании переменной. Нельзя изменить параметры существующей переменнойConstant
на .
Эти значения определяются как перечисление на основе флага. Можно объединить несколько значений, чтобы задать несколько флагов с помощью этого параметра. Значения можно передать параметру Option в виде массива значений или в виде строки, разделенной запятыми этих значений. Командлет объединяет значения с помощью операции binary-OR. Передача значений в виде массива является самым простым параметром, а также позволяет использовать завершение табуляции для значений.
Чтобы просмотреть свойство Options всех переменных в сеансе, введите Get-Variable | Format-Table -Property name, options -AutoSize
.
Тип: | ScopedItemOptions |
Допустимые значения: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Scope
Указывает область новой переменной. Допустимые значения для этого параметра:
Global
— Переменные, созданные в глобальной области, доступны везде в процессе PowerShell.Local
— Локальная область относится к текущей области, это может быть любая область в зависимости от контекста.Local
— область по умолчанию, если параметр области не указан.Script
— Переменные, созданные в области скрипта, доступны только в файле скрипта или модуле, в который они создаются.- Число относительно текущей области (от 0 до числа областей, где 0 является текущей областью, 1 является родительским, 2 родительским элементом родительской области и т. д.). Отрицательные числа нельзя использовать.
Примечание.
Параметр также принимает значение Private
. Private
— это не область, а необязательный параметр для переменной. Однако использование значения с этим командлетом Private
не изменяет видимость переменной. Дополнительные сведения см. в about_Scopes.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Value
Указывает первоначальное значение переменной.
Тип: | Object |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Visibility
Определяет, видима ли переменная вне сеанса, в котором она была создана. Этот параметр предназначен для использования в скриптах и командах, которые будут переданы другим пользователям. Допустимые значения для этого параметра:
Public
— переменная видна. Значение по умолчанию —Public
.Private
— переменная не видна.
Если переменная является частной, она не отображается в списках переменных, например Get-Variable
возвращаемых или в дисплеях Variable:
диска. Команды чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может выполнять команды, использующие частную переменную, если они были написаны в сеансе, в котором определена переменная.
Тип: | SessionStateEntryVisibility |
Допустимые значения: | Public, Private |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать любой объект New-Variable
в .
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект PSVariable , представляющий новую переменную.
Примечания
PowerShell включает следующие псевдонимы для New-Variable
:
- Все платформы:
nv
Связанные ссылки
PowerShell