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


New-Variable

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

Синтаксис

Default (по умолчанию)

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

В этом примере показано, как использовать параметр ReadOnlyNew-Variable для защиты переменной от перезаписи.

Первая команда создает новую переменную с именем Max и задает для нее значение 256. В нем используется параметр параметра со значением 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
...

В примере выходных данных показано поведение частной переменной. Пользователь, загрузивший модуль, не может просматривать или изменять значение переменной Счетчика, но переменная Счетчика может быть считываема и изменена командами в модуле.

Пример 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

Запрашивает подтверждение перед запуском 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

-Force

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

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
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 .
  • Private — переменная доступна только в текущей области.
  • AllScope — переменная копируется в все новые области, созданные.
  • Constant — невозможно удалить или изменить. Constant допустимо только при создании переменной. Нельзя изменить параметры существующей переменной на Constant.

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

Чтобы просмотреть свойство Options всех переменных в сеансе, введите Get-Variable | Format-Table -Property Name, Options -AutoSize.

Свойства параметра

Тип:ScopedItemOptions
Default value:None
Допустимые значения:None, ReadOnly, Constant, Private, AllScope, Unspecified
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-PassThru

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Scope

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

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

Замечание

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки: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, или в дисплеях диска Variable:. Команды для чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может выполнять команды, использующие частную переменную, если команды были записаны в сеансе, в котором была определена переменная.

Свойства параметра

Тип:SessionStateEntryVisibility
Default value:None
Допустимые значения: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

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

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

None

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

PSVariable

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

Примечания

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

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