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