New-Variable
Crea una nueva variable.
Sintaxis
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, se crea 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: Creación de una variable
New-Variable days
Este comando crea una nueva variable denominada days. No es necesario escribir el parámetro Name .
Ejemplo 2: Crear una variable y asignarle un valor
New-Variable -Name "zipcode" -Value 98033
Este comando crea una variable denominada zipcode y la asigna al valor 98033.
Ejemplo 3: Crear 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: Creación de 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: Creación de 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.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Description
Especifica una descripción de la variable.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 .
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Escriba un nombre para la nueva variable.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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 todos los ámbitos nuevos que se crean.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
.
Tipo: | ScopedItemOptions |
Valores aceptados: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto que representa el elemento con el que está trabajando. De forma predeterminada, este cmdlet no genera ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 de ámbito.Script
- Las variables creadas en el ámbito del script solo son accesibles dentro del archivo de script o módulo en el que se crean.- Número relativo al ámbito actual (de 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.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Value
Especifica el valor inicial de la variable.
Tipo: | Object |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | SessionStateEntryVisibility |
Valores aceptados: | Public, Private |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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