Set-Variable

Define o valor de uma variável. Cria a variável se uma com o nome solicitado não existir.

Sintaxe

Default (Predefinição)

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

Descrição

O Set-Variable cmdlet atribui um valor a uma variável especificada ou altera o valor atual. Se a variável não existir, o cmdlet cria-a.

Exemplos

Exemplo 1: Definir uma variável e obter o seu valor

Estes comandos definem o valor da $desc variável para A description, e depois obtém o valor da variável.

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

Exemplo 2: Definir uma variável global de apenas leitura

Este exemplo cria uma variável global, apenas de leitura, que contém todos os processos do sistema e, em seguida, exibe todas as propriedades da variável.

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

O comando usa o Set-Variable cmdlet para criar a variável. Utiliza o parâmetro PassThru para criar um objeto que representa a nova variável, e utiliza o operador pipeline (|) para passar o objeto ao Format-List cmdlet. Utiliza o parâmetro de Propriedade de Format-List com valor de todos (*) para mostrar todas as propriedades da variável recém-criada.

O valor , (Get-Process)está colocado entre parênteses para garantir que é executado antes de ser armazenado na variável. Caso contrário, a variável contém as palavras Get-Process.

Exemplo 3: Compreender as variáveis públicas vs. privadas

Este exemplo mostra como alterar a visibilidade de uma variável para Private. Esta variável pode ser lida e alterada por scripts com as permissões necessárias, mas não é visível para o utilizador.

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 mostra como alterar a visibilidade de uma variável para Privado. Esta variável pode ser lida e alterada por scripts com as permissões necessárias, mas não é visível para o utilizador.

Parâmetros

-Confirm

Solicita confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Description

Especifica a descrição da variável.

Propriedades dos parâmetros

Tipo:String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Exclude

Especifica um array de itens que este cmdlet exclui da operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt. Curingas são permitidos.

Propriedades dos parâmetros

Tipo:

String[]

Valor predefinido:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Force

Permite-lhe criar uma variável com o mesmo nome de uma variável só leitura existente, ou alterar o valor de uma variável só leitura.

Por defeito, pode sobrescrever uma variável, a menos que a variável tenha um valor de opção de ReadOnly ou Constant. Para mais informações, consulte o parâmetro Opção .

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Include

Especifica um conjunto de itens que este cmdlet inclui na operação. O valor desse parâmetro qualifica o Name parâmetro. Introduza um nome ou padrão de nome, como c*. Curingas são permitidos.

Propriedades dos parâmetros

Tipo:

String[]

Valor predefinido:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Name

Especifica o nome da variável.

Propriedades dos parâmetros

Tipo:

String[]

Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Option

Especifica o valor da propriedade Opções da variável.

Os valores válidos são:

  • None: Não define opções. (None é o padrão.)
  • ReadOnly: Pode ser apagado. Não pode ser alterado, exceto usando o parâmetro de Força.
  • Constant: Não pode ser eliminado ou alterado. Constant é válido apenas quando está a criar uma variável. Não pode alterar as opções de uma variável existente para Constant.
  • Private: A variável está disponível apenas no âmbito atual.
  • AllScope: A variável é copiada para quaisquer novos escopos que sejam criados.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados ao parâmetro Option como um array de valores ou como uma cadeia separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use o preenchimento de tabulação nos valores.

Propriedades dos parâmetros

Tipo:ScopedItemOptions
Valor predefinido:None
Valores aceites:None, ReadOnly, Constant, Private, AllScope, Unspecified
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-PassThru

Devolve um objeto que representa a nova variável. Por padrão, esse cmdlet não gera nenhuma saída.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Scope

Especifica o âmbito da variável. Os valores aceitáveis para este parâmetro são:

  • Global
  • Local
  • Script
  • Private
  • Um número relativo ao âmbito atual (0 até ao número de telescópios, onde 0 é o âmbito atual e 1 é o seu pai).

Local é o padrão.

Para obter mais informações, consulte about_Scopes.

Propriedades dos parâmetros

Tipo:String
Valor predefinido:Local
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Value

Especifica o valor da variável.

Propriedades dos parâmetros

Tipo:Object
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:1
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Visibility

Determina se a variável é visível fora da sessão em que foi criada. Este parâmetro foi concebido para uso em scripts e comandos que serão entregues a outros utilizadores.

Os valores válidos são:

  • Public: A variável é visível. (Public é o padrão.)
  • Private: A variável não é visível.

Quando uma variável é privada, não aparece em listas de variáveis, como as devolvidas por Get-Variable, ou nos ecrãs da unidade Variable: . Os comandos para ler ou alterar o valor de uma variável privada devolvem um erro. No entanto, o utilizador pode executar comandos que utilizam uma variável privada se os comandos foram escritos na sessão em que a variável foi definida.

Propriedades dos parâmetros

Tipo:SessionStateEntryVisibility
Valor predefinido:Public
Valores aceites:Public, Private
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor predefinido:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Object

O parâmetro Valor aceita entrada de objetos do pipeline por valor ou de objetos com uma propriedade Valor .

String

O parâmetro Nome aceita entrada de strings de objetos pipeline com uma propriedade Nome .

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

PSVariable

Quando usas o parâmetro PassThru , este cmdlet devolve um objeto PSVariable que representa a variável nova ou alterada.

Notas

O PowerShell inclui os seguintes aliases para Set-Variable:

  • Todas as plataformas:
    • set
    • sv