Búsqueda de sitios web

Set-Variable (Microsoft.PowerShell.Utility)


Set-Variable

Módulo:
Microsoft.PowerShell.Utility

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

Sintaxis

Set-Variable
   [-Name] <String[]>
   [[-Value] <Object>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Description <String>]
   [-Option <ScopedItemOptions>]
   [-Force]
   [-Visibility <SessionStateEntryVisibility>]
   [-PassThru]
   [-Scope <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descripción

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

Ejemplos

Ejemplo 1: establecer una variable y obtener su valor

Estos comandos establecen el valor de la variable $desc en Una descripción y luego obtienen el valor de la variable.

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

Ejemplo 2: establecer una variable global de solo lectura

Este ejemplo crea una variable global de solo lectura que contiene todos los procesos del sistema y luego muestra todas las propiedades de la variable.

Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
    Format-List -Property *

El comando utiliza el cmdlet Set-Variable para crear la variable. Utiliza el parámetro PassThru para crear un objeto que represente la nueva variable y utiliza el operador de canalización (|) para pasar el objeto a Format-List cmdlet. Utiliza el parámetro Property de Format-List con un valor de all (*) para mostrar todas las propiedades de la variable recién creada.

El valor, (Get-Process), está entre paréntesis para garantizar que se ejecute antes de almacenarse en la variable. De lo contrario, la variable contiene las palabras Get-Process.

Ejemplo 3: comprender las variables públicas y privadas

Este ejemplo muestra cómo cambiar la visibilidad de una variable a Privada. Esta variable puede ser leída y modificada mediante scripts con los permisos necesarios, pero no es visible para el usuario.

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

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

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

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

$counter

"Cannot access the variable '$counter' because it is a private variable"

.\use-counter.ps1
#Commands completed successfully.

Este comando muestra cómo cambiar la visibilidad de una variable a Privada. Esta variable puede ser leída y modificada mediante scripts con los permisos necesarios, pero no es visible para el usuario.

Parámetros

-Confirm

Le solicita confirmación antes de ejecutar el cmdlet.

Tipo :

SwitchParameter

Alias:

cf

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Description

Especifica la descripción de la variable.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Exclude

Especifica una matriz de elementos que este cmdlet excluye de la operación. El valor de este parámetro califica el parámetro Path. Introduzca un elemento o patrón de ruta, como *.txt. Se permiten comodines.

Tipo :

String[]

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-Force

Le 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, 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 Opción.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Include

Especifica una matriz de elementos que este cmdlet incluye en la operación. El valor de este parámetro califica el parámetro Nombre. Introduzca un nombre o un patrón de nombre, como c*. Se permiten comodines.

Tipo :

String[]

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-Name

Especifica el nombre de la 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 Opciones de la variable.

Los valores válidos son:

  • Ninguno: no establece opciones. (Ninguno es el valor predeterminado).
  • ReadOnly: se puede eliminar. No se puede cambiar, excepto mediante el uso del parámetro Fuerza.
  • Constante: No se puede eliminar ni cambiar. Constante es válida solo cuando se crea una variable. No puede cambiar las opciones de una variable existente a Constante.
  • Privado: la variable está disponible solo en el ámbito actual.
  • AllScope: la variable se copia en cualquier ámbito nuevo que se cree.

Estos valores se definen como una enumeración basada en indicadores. Puede combinar varios valores para establecer varios indicadores utilizando este parámetro. Los valores se pueden pasar al parámetro Opción como una matriz de valores o como una cadena de esos valores separada por comas. El cmdlet combinará los valores mediante una operación binaria O. Pasar valores como una matriz es la opción más simple y también le permite usar la función de tabulación en los valores.

Tipo :

Opciones de artículo con alcance

Valores aceptados:

Ninguno, Sólo lectura, Constante, Privado, AllScope, Sin especificar

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-PassThru

Devuelve un objeto que representa la nueva variable. De forma predeterminada, este cmdlet no genera ningún resultado.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Scope

Especifica el alcance de la variable. Los valores aceptables para este parámetro son:

    Global
    Local
    Script
    Private
  • Un número relativo al ámbito actual (de 0 al número de ámbitos, donde 0 es el ámbito actual y 1 es su principal).

Local es el valor predeterminado.

Para obtener más información, consulte about_Scopes.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

Local

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Value

Especifica el valor de la variable.

Tipo :

Objeto

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 fue creada. Este parámetro está diseñado para usarse en scripts y comandos que se entregarán a otros usuarios.

Los valores válidos son:

  • Público: La variable es visible. (Público es el valor predeterminado).
  • Privado: La variable no es visible.

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

Tipo :

Visibilidad de entrada de estado de sesión

Valores aceptados:

Público, Privado

Posición:

Nombrado

Valor predeterminado:

Público

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-WhatIf

Muestra lo que sucedería si se ejecuta el cmdlet. El cmdlet no se ejecuta.

Tipo :

SwitchParameter

Alias:

wi

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

Entradas

Objeto

Puede canalizar un objeto que represente el valor de la variable a este cmdlet.

Salidas

Ninguno

De forma predeterminada, este cmdlet no devuelve ningún resultado.

PSVariable

Cuando se utiliza el parámetro PassThru, este cmdlet devuelve un objeto PSVariable que representa la variable nueva o modificada.

Notas

PowerShell incluye los siguientes alias para Set-Variable:

  • Todas las plataformas:

      set
      sv

Artículos relacionados