Crea una nueva variable.

Sintaxis

New-Variable [-Name] <string> [[-Value] <Object>] [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirm] [-WhatIf] [<CommonParameters>]

Descripción

El cmdlet New-Variable crea una nueva variable en Windows PowerShell. Se puede asignar un valor a la variable en el momento de crearla, o bien, se puede asignar o cambiar el valor después de crear la variable.

Se pueden usar los parámetros de New-Variable para establecer las propiedades de la variable (como las que crean variables constantes o de solo lectura), establecer el ámbito de la variable y determinar si la variable es pública o privada.

Normalmente, se crea una nueva variable escribiendo su nombre y valor, como "$var = 3", pero se puede utilizar el cmdlet New-Variable con sus parámetros.

Parámetros

-Description <string>

Especifica la descripción de la variable.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Force

Permite crear una nueva variable con un nombre idéntico al de una variable de solo lectura existente.

De forma predeterminada, las variables se pueden sobrescribir, a menos que el valor de Option sea ReadOnly o Constant. Para obtener más información, vea el parámetro Option.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Name <string>

Especifica el nombre de la nueva variable.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Option <ScopedItemOptions>

Establece el valor de la propiedad Options de la nueva variable.

Los valores válidos son:

-- None: no establece opciones. ("None" es el valor predeterminado.)

-- ReadOnly: no se puede cambiar el valor de la variable, excepto con el parámetro Force. Se puede usar Remove-Variable para eliminar la variable.

-- Constant: no se puede eliminar la variable y no se pueden cambiar sus propiedades. El valor "Constant" está disponible únicamente cuando se crea un alias. No se puede cambiar la opción de una variable existente a "Constant".

-- Private: la variable solo está disponible en el ámbito especificado por el parámetro Scope. La heredan los ámbitos secundarios. (Este valor no está relacionado con el valor "Private" del parámetro Visibility.)

-- AllScope: la variable se copia en los nuevos ámbitos que se creen.

Para ver la propiedad Options de las variables, escriba "get-variable| Format-Table -property name, options -autosize".

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-PassThru

Devuelve un objeto que representa la nueva variable. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Scope <string>

Determina el ámbito de la nueva variable. Los valores válidos son "Global", "Local", "Script" o el número correspondiente al ámbito actual (entre 0 y el número de ámbitos, donde 0 es el ámbito actual y 1 su ámbito principal). "Local" es el valor predeterminado. Para obtener más información, vea about_Scopes.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Value <Object>

Especifica el valor inicial de la variable.

¿Requerido?

false

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

false

-Visibility <SessionStateEntryVisibility>

Determina si la variable puede verse fuera de la sesión en la que se creó. Este parámetro se ha diseñado para utilizarlo en scripts y comandos que se entregan a otros usuarios.

Los valores válidos son:

-- Public: la variable puede verse. ("Public" es el valor predeterminado.)

-- Private: la variable no puede verse.

Cuando una variable es privada, no aparece en las listas de variables, como las devueltas por Get-Variable, ni en las presentaciones 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 utilizan una variable privada si dichos comandos se escribieron en la sesión en la que se definió la variable.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

Public

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Object

Puede canalizar un valor a New-Variable.

Salidas

Ninguno o 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. En caso contrario, este cmdlet no genera resultados.

Ejemplo 1

C:\PS>new-variable days

Descripción
-----------
Este comando crea una nueva variable denominada "days". No hay ningún valor que siga inmediatamente al comando.






Ejemplo 2

C:\PS>new-variable zipcode -value 98033

Descripción
-----------
Este comando crea una variable denominada "zipcode" y le asigna el valor "98033".






Ejemplo 3

C:\PS>new-variable -name max -value 256 -option readonly

new-variable -name max -value 1024

new-variable -name max -value 1024 -force

C:\PS> new-variable -name max -value 256 -option readonly

C:\PS> new-variable -name max -value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:13
+ new-variable <<<<  -name max -value 1024

C:\PS> new-variable -name max -value 1024 -force

Descripción
-----------
En este ejemplo se muestra cómo utilizar la opción ReadOnly de New-Variable para evitar que se sobrescriba una variable.

El primer comando crea una nueva variable denominada Max y establece su valor en "256". Utiliza el parámetro Option con el valor ReadOnly.

El segundo comando intenta crear una segunda variable con el mismo nombre. Este comando devuelve un error porque se ha establecido la opción de solo lectura 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, se ejecuta correctamente el comando para crear una nueva variable con el mismo nombre.






Ejemplo 4

C:\PS>new-variable -name counter -visibility private

#Effect of private variable in a module.

C:\PS> get-variable c*

Name                           Value
----                           -----
Culture                        en-US
ConsoleFileName
ConfirmPreference              High
CommandLineParameters          {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> Get-Counter
Name         Value
----         -----
Counter1     3.1415
...

Descripción
-----------
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 utiliza el parámetro Visibility con el valor "Private" para crear la variable.

En el resultado del ejemplo se muestra el comportamiento de una variable privada. El usuario que cargó el módulo no puede ver ni cambiar el valor de la variable Counter, pero dicha variable la pueden leer y cambiar los comandos del módulo.






Vea también




Tabla de contenido