Compartir a través de


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 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 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 de todas las variables de la sesión, escriba .

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

Object

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.