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

Синтаксис

New-Variable [-Name] <string> [[-Value] <Object>] [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Описание

Командлет New-Variable создает в Windows PowerShell новую переменную. Переменной можно присвоить значение в момент ее создания, либо можно присвоить или изменить его после создания переменной.

Параметры командлета New-Variable позволяют задавать свойства переменной, например делать ее доступной только для чтения или константой, задавать область переменной и определять, является переменная открытой или закрытой.

Обычно для создания переменной нужно ввести ее имя и значение, например "$var = 3", но командлет New-Variable позволяет использовать его параметры.

Параметры

-Description <string>

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

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-Force

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

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

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-Name <string>

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

Обязательно?

true

Позиция?

1

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

Принимать входные данные из конвейера?

true (ByPropertyName)

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

false

-Option <ScopedItemOptions>

Задает значение свойства Options новой переменной.

Допустимые значения:

-- None: не определяет параметров (по умолчанию используется "None").

-- ReadOnly: значение переменной не может быть изменено, если не использовать параметр Force. Для удаления переменной можно использовать командлет Remove-Variable.

-- Constant: переменную нельзя удалить, а ее свойства нельзя изменить. Значение "Constant" доступно только при создании псевдонима. Невозможно изменить на "Constant" значение этого параметра для существующей переменной.

-- Private: переменная доступна только в области, определенной параметром Scope. Она наследуется дочерними областями. (Это значение не связано со значением "Private" параметра Visibility.)

-- AllScope: переменная копируется во все создаваемые области.

Чтобы увидеть свойство переменных Options, введите команду "get-variable| Format-Table -property name, options -autosize".

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-PassThru

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

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-Scope <string>

Определяет область новой переменной. Допустимые значения: "Global", "Local", "Script" или номер относительно текущей области (от 0 до количества областей, где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Local". Дополнительные сведения см. в разделе about_Scopes.

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-Value <Object>

Задает начальное значение переменной.

Обязательно?

false

Позиция?

2

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

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

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

false

-Visibility <SessionStateEntryVisibility>

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

Допустимые значения:

-- Public: переменная видима. ("Public" является значением по умолчанию.)

-- Private: переменная невидима.

Если переменная закрыта (Private), она не появляется в списках переменных, например в списках, возвращаемых командлетом Get-Variable, или при отображении диска Variable:. Выполнение команд чтения или изменения значения частной переменной возвращает ошибку. Но пользователи могут выполнять команды, использующие частные переменные, если эти команды были написаны в сеансах, в которых были определены эти переменные.

Обязательно?

false

Позиция?

named

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

Public

Принимать входные данные из конвейера?

false

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

false

-Confirm

Запрашивает подтверждение перед выполнением команды.

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

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

Принимать входные данные из конвейера?

false

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

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

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

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

System.Object

Значение можно передать командлету New-Variable с помощью конвейера.

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

Нет или System.Management.Automation.PSVariable

Если задан параметр PassThru, командлет New-Variable создает объект System.Management.Automation.PSVariable, представляющий новую переменную. В противном случае этот командлет не формирует никаких выходных данных.

Пример 1

C:\PS>new-variable days

Описание
-----------
Эта команда создает переменную с именем "days". Сразу же после выполнения команды эта переменная никакого значения не имеет.






Пример 2

C:\PS>new-variable zipcode -value 98033

Описание
-----------
Эта команда создает переменную "zipcode" и присваивает ей значение "98033".






Пример 3

C:\PS>new-variable -name max -value 256 -option readonly

new-variable -name max -value 1024

new-variable -name max -value 1024 -force

C:\PS> new-variable -name max -value 256 -option readonly

C:\PS> new-variable -name max -value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:13
+ new-variable <<<<  -name max -value 1024

C:\PS> new-variable -name max -value 1024 -force

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

Первая команда создает новую переменную Max и присваивает ей значение 256. При этом используется параметр Option со значением ReadOnly.

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

В третьей команде используется параметр Force, чтобы обойти защиту от перезаписи переменной. В этом случае попытка создать новую переменную с таким же именем завершается успешно.






Пример 4

C:\PS>new-variable -name counter -visibility private

#Effect of private variable in a module.

C:\PS> get-variable c*

Name                           Value
----                           -----
Culture                        en-US
ConsoleFileName
ConfirmPreference              High
CommandLineParameters          {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

Описание
-----------
Эта команда демонстрирует поведение частной переменной в модуле. Модуль содержит командлет Get-Counter, у которого имеется закрытая переменная "Counter". При создании переменной команда использует параметр Visibility со значением "Private".

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






См. также




Содержание