Establece el valor de una variable. Crea la variable si no existe ninguna con el nombre solicitado.

Sintaxis

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

Descripción

El cmdlet Set-Variable asigna un valor a la variable especificada o cambia el valor actual. Si la variable no existe, el cmdlet la crea.

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

-Exclude <string[]>

Omite los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un patrón o un elemento de la ruta de acceso, como "*.txt". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Force

Permite crear una variable con el mismo nombre que una variable de solo lectura existente o cambiar el valor de una variable de solo lectura.

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

-Include <string[]>

Cambia únicamente los elementos especificados. El valor de este parámetro califica el parámetro Name. Escriba un nombre o patrón de nombre, como "c*". Se permite el uso de caracteres comodín.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Name <string[]>

Especifica el nombre de la variable.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Option <ScopedItemOptions>

Cambia el valor de la propiedad Options de la variable. Los valores válidos son:

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

-- ReadOnly: no se pueden cambiar las propiedades 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.

-- 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 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 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 a Set-Variable un objeto que representa el valor de la variable.

Salidas

Ninguno o System.Management.Automation.PSVariable

Cuando se usa el parámetro PassThru, Set-Variable genera un objeto System.Management.Automation.PSVariable que representa la nueva variable o la variable modificada. En caso contrario, este cmdlet no genera resultados.

Ejemplo 1

C:\PS>set-variable -name desc -value "A description"

C:\PS>get-variable -name desc

Descripción
-----------
Estos comandos establecen el valor de la variable "desc" como "A description" y, a continuación, obtienen el valor de la variable.






Ejemplo 2

C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *

Descripción
-----------
Este comando crea una variable global de solo lectura que contiene todos los procesos del sistema; a continuación, muestra todas las propiedades de la variable.

El comando usa el cmdlet Set-Variable para crear la variable. Usa el parámetro PassThru para crear un objeto que representa la nueva variable y utiliza el operador de canalización (|) para pasar el objeto al cmdlet Format-List. Usa el parámetro Property de Format-List con el valor All (*) para mostrar todas las propiedades de la variable que se acaba de crear. 

El valor, "(Get-Process)", se escribe entre paréntesis para asegurar que se ejecuta antes de almacenarse en la variable. De lo contrario, la variable contendría las palabras "Get-Process".






Ejemplo 3

C:\PS># set-variable -name counter -visibility private

C:\PS> new-variable -name counter -visibility public -value 26

C:\PS> $counter
26

C:\PS> get-variable c*

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

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

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> .\use-counter.ps1
Commands completed successfully.

Descripción
-----------
Este comando muestra cómo cambiar la visibilidad de una variable a "Private". Esta variable se puede leer y cambiar mediante scripts con los permisos requeridos, pero el usuario no puede verla.

En el resultado de ejemplo se muestra la diferencia entre el comportamiento de variables públicas y el de variables privadas.






Vea también




Tabla de contenido