Создает новую переменную.
Синтаксис
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 и изменять ее.