New-Variable
Создает новую переменную.
Синтаксис
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет New-Variable
создает новую переменную в Windows PowerShell. Значение для переменной можно назначить при ее создании или изменив созданное значение.
С помощью параметров New-Variable
можно задать свойства переменной, задать область переменной и определить, являются ли переменные общедоступными или частными.
Как правило, вы создаете новую переменную, вводя ее имя и ее значение, например $Var = 3
, но вы можете использовать New-Variable
командлет для использования ее параметров.
Примеры
Пример 1. Create переменной
New-Variable days
Эта команда создает новую переменную с именем days. Вводить параметр Name не требуется.
Пример 2. Create переменной и присвойте ей значение
New-Variable -Name "zipcode" -Value 98033
Эта команда создает переменную с именем zipcode и присваивает ей значение 98033.
Пример 3. Create переменной с параметром 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. Create частной переменной
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
...
Эта команда демонстрирует поведение частной переменной в модуле. Модуль содержит Get-Counter
командлет , который имеет частную переменную с именем Counter. Команда использует параметр Visibility со значением Private для создания переменной.
В примере выходных данных показано поведение частной переменной. Пользователь, загрузивший модуль, не может просматривать или изменять значение переменной Counter, но переменную Counter можно прочитать и изменить с помощью команд в модуле.
Пример 6. Create переменной с пробелом
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
Эта команда демонстрирует возможность создания переменных с пробелами. Доступ к переменным можно получить с помощью командлета Get-Variable
или напрямую, разделив переменную фигурными скобками.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Указывает описание переменной.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Указывает, что командлет создает переменную с тем же именем, что и существующая переменная, доступная только для чтения.
По умолчанию переменную можно перезаписать, если только переменная не имеет значения ReadOnly
параметра или Constant
. Дополнительные сведения см. в параметре Option .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает имя новой переменной.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Задает значение свойства Options переменной. Допустимые значения для этого параметра:
None
— не задает параметров. Значение по умолчанию —None
.ReadOnly
— Может быть удален. Нельзя изменить, за исключением использования параметра Force .Private
— переменная доступна только в текущем область.AllScope
— переменная копируется во все новые области, которые создаются.Constant
— невозможно удалить или изменить.Constant
является допустимым только при создании переменной. Нельзя изменить параметры существующей переменной наConstant
.
Эти значения определяются как перечисление на основе флагов. С помощью этого параметра можно объединить несколько значений, чтобы задать несколько флагов. Значения могут передаваться в параметр Option в виде массива значений или в виде строки этих значений, разделенной запятыми. Командлет объединит значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать для значений заполнение табуляции.
Чтобы просмотреть свойство Options всех переменных в сеансе, введите Get-Variable | Format-Table -Property name, options -AutoSize
.
Type: | ScopedItemOptions |
Accepted values: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Задает область новой переменной. Допустимые значения для этого параметра:
Global
— Переменные, созданные в глобальной область, доступны везде в процессе PowerShell.Local
— Локальный область относится к текущему область, это может быть любой область в зависимости от контекста.Script
— Переменные, созданные в область скрипта, доступны только в файле скрипта или модуле, в которых они созданы.Private
— Переменные, созданные в частном область, не могут быть доступны за пределами область, в которых они существуют. Вы можете использовать частные область, чтобы создать закрытую версию элемента с тем же именем в другом область.- Число относительно текущего область (от 0 до количества областей, где 0 — это текущий область, 1 — родительский элемент, 2 — родительский элемент родительского область и т. д.). Отрицательные числа нельзя использовать.
Local
является область по умолчанию, если параметр область не указан.
Дополнительные сведения см. в разделе about_Scopes.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Указывает первоначальное значение переменной.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Visibility
Определяет, видима ли переменная вне сеанса, в котором она была создана. Этот параметр предназначен для использования в скриптах и командах, которые будут доставляться другим пользователям. Допустимые значения для этого параметра:
Public
— переменная видна. Значение по умолчанию —Public
.Private
— переменная не видна.
Если переменная является частной, она не отображается в списках переменных, таких как те, которые возвращаются Get-Variable
, или в дисплеях Variable:
диска. Команды чтения или изменения значения частной переменной возвращают ошибку. Однако пользователь может выполнять команды, использующие частную переменную, если они были написаны в сеансе, в котором определена переменная.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Значение можно передать в New-Variable
.
Выходные данные
None or System.Management.Automation.PSVariable
При использовании параметра PassThru создает объект System.Management.Automation.PSVariable, New-Variable
представляющий новую переменную. В противном случае командлет не формирует никаких выходных данных.