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
В этом примере показано, как использовать параметр ReadOnly
New-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