New-Variable
Crea una variable.
Syntax
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El New-Variable
cmdlet crea una nueva variable en PowerShell. Puede asignar un valor a la variable al crearla o asignar o cambiar el valor después de crearla.
Puede usar los parámetros de New-Variable
para establecer las propiedades de la variable, establecer el ámbito de una variable y determinar si las variables son públicas o privadas.
Normalmente, puede crear una nueva variable escribiendo el nombre de la variable y su valor, como $Var = 3
, pero puede usar el New-Variable
cmdlet para usar sus parámetros.
Ejemplos
Ejemplo 1: Create una variable
New-Variable days
Este comando crea una nueva variable denominada days. No es necesario escribir el parámetro Name .
Ejemplo 2: Create una variable y asígnele un valor
New-Variable -Name "zipcode" -Value 98033
Este comando crea una variable denominada zipcode y la asigna al valor 98033.
Ejemplo 3: Create una variable con la opción 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
En este ejemplo se muestra cómo usar la ReadOnly
opción de New-Variable
para proteger una variable de que se sobrescriba.
El primer comando crea una nueva variable denominada Max y establece su valor en 256. Usa el parámetro Option con un valor de ReadOnly
.
El segundo comando intenta crear una segunda variable con el mismo nombre. Este comando devuelve un error porque la opción de solo lectura se establece en la variable.
El tercer comando usa el parámetro Force para invalidar la protección de solo lectura en la variable. En este caso, el comando para crear una nueva variable con el mismo nombre se realiza correctamente.
Ejemplo 4: Asignación de varias opciones a una variable
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
En este ejemplo se crea una variable y se asignan las AllScope
opciones y Constant
, por lo que la variable estará disponible en el ámbito actual y los nuevos ámbitos creados y no se pueden cambiar ni eliminar.
Ejemplo 5: Create una variable privada
Este comando muestra el comportamiento de una variable privada en un módulo. El módulo contiene el Get-Counter
cmdlet , que tiene una variable privada denominada Counter. El comando usa el parámetro Visibility con un valor de Private para crear la variable.
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
...
El resultado del ejemplo muestra el comportamiento de una variable privada. El usuario que ha cargado el módulo no puede ver ni cambiar el valor de la variable Counter, pero los comandos del módulo pueden leer y cambiar esa variable.
Ejemplo 6: Create una variable con un espacio
En este ejemplo se muestra que se pueden crear variables con espacios. Se puede acceder a las variables mediante el Get-Variable
cmdlet o directamente delimitando una variable con llaves.
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
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Especifica una descripción de la variable.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Indica que el cmdlet crea una variable con el mismo nombre que una variable de solo lectura existente.
De forma predeterminada, puede sobrescribir una variable a menos que la variable tenga un valor de opción de ReadOnly
o Constant
. Para obtener más información, consulte el parámetro Option .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Escriba un nombre para la nueva variable.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Especifica el valor de la propiedad Options de la variable. Los valores permitidos para este parámetro son los siguientes:
None
: no establece ninguna opción.None
es el valor predeterminado.ReadOnly
- Se puede eliminar. No se puede cambiar, excepto mediante el parámetro Force .Private
: la variable solo está disponible en el ámbito actual.AllScope
: la variable se copia en cualquier ámbito nuevo que se cree.Constant
- No se puede eliminar ni cambiar.Constant
solo es válido cuando se crea una variable. No se pueden cambiar las opciones de una variable existente aConstant
.
Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro Option como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.
Para ver la propiedad Options de todas las variables de la sesión, escriba 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
Devuelve un objeto que representa el elemento con el que está trabajando. De forma predeterminada, este cmdlet no genera ningún resultado.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Especifica el ámbito de la nueva variable. Los valores permitidos para este parámetro son los siguientes:
Global
- Las variables creadas en el ámbito global son accesibles en todas partes en un proceso de PowerShell.Local
- El ámbito local hace referencia al ámbito actual, puede ser cualquier ámbito en función del contexto.Local
es el ámbito predeterminado cuando no se especifica el parámetro scope.Script
- Las variables creadas en el ámbito de script solo son accesibles dentro del archivo de script o módulo en el que se crean.- Número relativo al ámbito actual (0 al número de ámbitos, donde 0 es el ámbito actual, 1 es su elemento primario, 2 el elemento primario del ámbito primario, etc.). No se pueden usar números negativos.
Nota
El parámetro también acepta el valor de Private
. Private
no es realmente un ámbito, sino una configuración opcional para una variable. Sin embargo, el uso del Private
valor con este cmdlet no cambia la visibilidad de la variable. Para obtener más información, consulte about_Scopes.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Especifica el valor inicial de la variable.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Visibility
Determina si la variable es visible fuera de la sesión en la que se creó. Este parámetro está diseñado para su uso en scripts y comandos que se entregarán a otros usuarios. Los valores permitidos para este parámetro son los siguientes:
Public
: la variable está visible.Public
es el valor predeterminado.Private
: la variable no está visible.
Cuando una variable es privada, no aparece en listas de variables, como las devueltas por Get-Variable
o en pantallas de la Variable:
unidad. Los comandos para leer o cambiar el valor de una variable privada devuelven un error. Sin embargo, el usuario puede ejecutar comandos que usan una variable privada si se escribieron en la sesión en la que se definió la variable.
Type: | SessionStateEntryVisibility |
Accepted values: | Public, Private |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Puede canalizar cualquier objeto a New-Variable
.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru , este cmdlet devuelve un objeto PSVariable que representa la nueva variable.
Notas
PowerShell incluye los siguientes alias para New-Variable
:
- Todas las plataformas:
nv