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 cmdlet New-Variable crea una nueva variable en Windows PowerShell. Puede asignar un valor a la variable mientras lo crea o asigna o cambia el valor después de crearlo.
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 cmdlet new-Variable para usar sus parámetros.
Ejemplos
Ejemplo 1: Creación de una variable
PS C:\> 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
PS C:\> 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 opción ReadOnly de New-Variable para proteger una variable de sobrescrita.
El primer comando crea una nueva variable denominada Max y establece su valor en 256.
Usa el parámetro option
El segundo comando intenta crear una segunda variable con el mismo nombre. Este comando devuelve un error, porque la opción de solo lectura está establecida 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: Creación de una variable privada
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
...
Este comando muestra el comportamiento de una variable privada en un módulo. El módulo contiene el cmdlet Get-Counter, que tiene una variable privada denominada Counter. El comando usa el parámetro Visibility con un valor de Private para crear la variable.
La salida de 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 la variable Counter.
Ejemplo 5: Creación de una variable con un espacio
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
Este comando muestra que se pueden crear variables con espacios. Se puede acceder a las variables mediante el cmdlet Get-Variable o directamente mediante la delimitación de una variable con llaves.
Parámetros
-Confirm
Le pide 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 de
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Especifica 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 Options propiedad de la variable. Los valores aceptables para este parámetro son:
- Ninguno. No establece ninguna opción. (Ninguno es el valor predeterminado).
- ReadOnly.
Se puede eliminar.
No se puede cambiar, excepto mediante el parámetro force
. - Privado. La variable solo está disponible en el ámbito actual.
- AllScope. La variable se copia en cualquier ámbito nuevo que se cree.
- Constante. No se puede eliminar ni cambiar. La constante solo es válida cuando se crea una variable. No se pueden cambiar las opciones de una variable existente a Constante.
Para ver la propiedad Opciones de
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 ninguna salida.
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 aceptables para este parámetro son:
- 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.
- Guión. Las variables creadas en el ámbito del script solo son accesibles dentro del archivo de script o módulo en el que se crean.
- Privado. No se puede tener acceso a las variables creadas en el ámbito privado fuera del ámbito en el que existen. Puede usar el ámbito privado para crear una versión privada de un elemento con el mismo nombre en otro ámbito.
- 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.
Local es el ámbito predeterminado cuando no se especifica el parámetro de ámbito.
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 está 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 aceptables para este parámetro son:
- Público. La variable está visible. (Public es el valor predeterminado).
- Privado. La variable no está visible.
Cuando una variable es privada, no aparece en listas de variables, como las devueltas por Get-Variable, o en las pantallas de la unidad Variable: . Los comandos para leer o cambiar el valor de una variable privada devuelven un error. Sin embargo, el usuario puede ejecutar comandos que usen una variable privada si los comandos 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 el cmdlet se ejecuta. 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 un valor a New-Variable.
Salidas
None or System.Management.Automation.PSVariable
Cuando se usa el parámetro PassThru, New-Variable genera un objeto System.Management.Automation.PSVariable que representa la nueva variable. De lo contrario, este cmdlet no genera ninguna salida.