Поиск по сайту:

New-Variable (Microsoft.PowerShell.Utility)


New-Variable

Модуль:
Microsoft.PowerShell.Utility

Создает новую переменную.

Синтаксис

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

Эта команда создает новую переменную с именем дней. Вам не требуется вводить параметр Имя.

Пример 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. Команда использует параметр Visibility со значением 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

Псевдонимы:

cf

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Description

Задает описание переменной.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Force

Указывает, что командлет создает переменную с тем же именем, что и существующая переменная, доступная только для чтения.

По умолчанию вы можете перезаписать переменную, если только переменная не имеет значения параметра ReadOnly или Constant. Дополнительную информацию см. в параметре Option.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Name

Указывает имя новой переменной.

Тип :

String

Позиция:

0

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Option

Указывает значение свойства Options переменной. Допустимые значения этого параметра:

  • Нет — параметры не устанавливаются. Нет — значение по умолчанию.
  • ReadOnly — можно удалить. Невозможно изменить, кроме как с помощью параметра Force.
  • Private — переменная доступна только в текущей области.
  • AllScope — переменная копируется во все новые создаваемые области.
  • Константа — невозможно удалить или изменить. Константа действительна только при создании переменной. Вы не можете изменить параметры существующей переменной на Constant.

Эти значения определяются как перечисление на основе флагов. С помощью этого параметра вы можете объединить несколько значений, чтобы установить несколько флагов. Значения можно передавать в параметр Option как массив значений или как строку этих значений, разделенную запятыми. Командлет объединит значения с помощью операции двоичного ИЛИ. Передача значений в виде массива — самый простой вариант, который также позволяет использовать для значений табуляцию.

Чтобы просмотреть свойство Options всех переменных в сеансе, введите Get-Variable | Формат-Таблица - Имя свойства, параметры - Авторазмер.

Тип :

ScopedItemOptions

Принятые значения:

Нет, только для чтения, постоянный, частный, AllScope, не указано

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-PassThru

Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не генерирует никаких выходных данных.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Scope

Указывает область действия новой переменной. Допустимые значения этого параметра:

  • Global — переменные, созданные в глобальной области, доступны повсюду в процессе PowerShell.
  • Local — локальная область относится к текущей области. Это может быть любая область в зависимости от контекста. Local — это область по умолчанию, если параметр области не указан.
  • Script — переменные, созданные в области скрипта, доступны только внутри файла скрипта или модуля, в котором они созданы.
  • Число относительно текущей области (от 0 до количества областей, где 0 — текущая область, 1 — ее родительский элемент, 2 — родительский элемент родительской области и т. д.). Отрицательные числа использовать нельзя.

Примечание

Параметр также принимает значение Private. Private на самом деле не является областью действия, а является необязательным параметром для переменной. Однако использование значения Private с этим командлетом не меняет видимость переменной. Дополнительные сведения см. в разделе about_Scopes.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Value

Указывает начальное значение переменной.

Тип :

Объект

Позиция:

1

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Visibility

Определяет, видна ли переменная за пределами сеанса, в котором она была создана. Этот параметр предназначен для использования в скриптах и командах, которые будут доставлены другим пользователям. Допустимые значения этого параметра:

  • Public — переменная видна. Public — значение по умолчанию.
  • Private — переменная не видна.

Если переменная является частной, она не отображается в списках переменных, например, возвращаемых командой Get-Variable, или на дисплеях диска Variable:. Команды для чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может запускать команды, использующие частную переменную, если команды были написаны в сеансе, в котором была определена переменная.

Тип :

Сеансстатеэнтривизисити

Принятые значения:

Общественный, Частный

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-WhatIf

Показывает, что произойдет, если командлет запустится. Командлет не запускается.

Тип :

SwitchParameter

Псевдонимы:

wi

Позиция:

Именованный

Значение по умолчанию:

False

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

Объект

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

Выходы

Нет

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

PSVariable

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

Примечания

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

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

      nv