Set-Variable
Establece el valor de una variable. Crea la variable si no existe una 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>]
Description
El Set-Variable
cmdlet 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 $desc
variable A description
en y, a continuación, obtiene el valor de la variable.
Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"
Name Value
---- -----
desc A description
Ejemplo 2: Establecimiento de una variable global de solo lectura
En este ejemplo se crea una variable global de solo lectura que contiene todos los procesos del sistema y, a continuación, se muestran 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 usa el Set-Variable
cmdlet para crear la variable. Usa el parámetro PassThru para crear un objeto que represente la nueva variable y usa el operador de canalización (|
) para pasar el objeto al Format-List
cmdlet. Usa el parámetro Property de Format-List
con un valor de todos (*
) para mostrar todas las propiedades de la variable recién creada.
El valor , (Get-Process)
, se incluye entre paréntesis para asegurarse de que se ejecuta antes de almacenarse en la variable. De lo contrario, la variable contiene las palabras Get-Process
.
Ejemplo 3: Descripción de las variables públicas frente a privadas
En este ejemplo se muestra cómo cambiar la visibilidad de una variable a Private
. Esta variable se puede leer y cambiar 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 Private. Esta variable se puede leer y cambiar mediante scripts con los permisos necesarios, pero no es visible para el usuario.
Parámetros
-Confirm
Le solicita su 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 la 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 |
-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 . Escriba un elemento o patrón de ruta de acceso, como *.txt
.
Se permiten los caracteres comodín.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Force
Permite crear una variable con el mismo nombre que una variable existente de solo lectura 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 Option .
Tipo: | SwitchParameter |
Posición: | Named |
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 Name . Escriba un nombre o patrón de nombre, como c*
. Se permiten los caracteres comodín.
Tipo: | String[] |
Posición: | Named |
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 Options de la variable.
Los valores válidos son:
None
: no establece ninguna opción. (None
es el valor predeterminado).ReadOnly
: se puede eliminar. No se puede cambiar, excepto mediante el parámetro Force.Constant
: no se puede eliminar ni cambiar.Constant
solo es válido cuando se crea una variable. No se pueden cambiar las opciones de una variable existente aConstant
.Private
: la variable solo está disponible en el ámbito actual.AllScope
: la variable se copia en todos los ámbitos nuevos que se crean.
Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro Option como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.
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 la nueva variable. De forma predeterminada, este cmdlet no genera ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Scope
Especifica el ámbito de la variable. Los valores aceptables para este parámetro son:
Global
Local
Script
Private
- Número relativo al ámbito actual (de 0 al número de ámbitos, donde 0 es el ámbito actual y 1 es su elemento primario).
Local
es el valor predeterminado.
Para obtener más información, consulte about_Scopes.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | Local |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Value
Especifica el valor 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 es 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 válidos son:
Public
: la variable está visible. (Public
es el valor predeterminado).Private
: 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 usan una variable privada si se escribieron en la sesión en la que se definió la variable.
Tipo: | SessionStateEntryVisibility |
Valores aceptados: | Public, Private |
Posición: | Named |
Valor predeterminado: | Public |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. 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 objeto que representa el valor de la variable a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa 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