Поделиться через


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

Входные данные

Object

Вы можете передать любой объект New-Variableв .

Выходные данные

None

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

PSVariable

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

Примечания

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

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