Partilhar via


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>]

Description

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

Exemplos

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

PS C:\> Set-Variable -Name "desc" -Value "A description"
PS C:\> Get-Variable -Name "desc"

Esses comandos definem o valor da variável desc como Uma descrição e, em seguida, obtém o valor da variável.

Exemplo 2: Definir uma variável global somente leitura

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

Este comando cria uma variável global somente leitura que contém todos os processos no sistema e, em seguida, exibe todas as propriedades da variável.

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

O valor, "(Get-Process)", é 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

PS C:\> New-Variable -Name "counter" -Visibility Public -Value 26
PS C:\> $Counter
26
PS C:\> Get-Variable c*

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

PS C:\> Set-Variable -Name "counter" -Visibility Private
PS C:\> Get-Variable c*

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

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

PS C:\> .\use-counter.ps1
#Commands completed successfully.

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

O resultado da amostra mostra a diferença no comportamento das variáveis públicas e privadas.

Parâmetros

-Confirm

Solicita confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position: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
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-Exclude

Especifica uma matriz de itens que esse 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[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

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

-Force

Permite criar uma variável com o mesmo nome de uma variável somente leitura existente ou alterar o valor de uma variável somente leitura.

Por padrão, você pode substituir uma variável, a menos que a variável tenha um valor de opção Somente leitura ou Constante. Para obter mais informações, consulte o parâmetro Option.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-Include

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

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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 Options da variável.

Os valores válidos são:

  • Nenhum: não define opções. ("Nenhum" é o padrão.)
  • ReadOnly: Pode ser excluído. Não pode ser alterado, exceto usando o parâmetro Force.
  • Constante: Não pode ser excluída ou alterada. "Constante" é válido somente quando você está criando uma variável. Não é possível alterar as opções de uma variável existente para "Constante".
  • Privado: A variável está disponível apenas no escopo atual.
  • AllScope: A variável é copiada para todos os novos escopos criados.

Para ver a propriedade Options de todas as variáveis na sessão, digite Get-Variable | Format-Table -Property name, options -Autosize.

Propriedades dos parâmetros

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

Conjuntos de parâmetros

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

-PassThru

Retorna 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
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

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

-Scope

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

  • A nível mundial
  • Locais
  • Script
  • Privado
  • Um número relativo ao escopo atual (0 através do número de escopos, onde 0 é o escopo atual e 1 é seu pai).

Local é o padrão.

Para obter mais informações, consulte about_Scopes.

Propriedades dos parâmetros

Tipo:String
Default value:Local
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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 projetado para uso em scripts e comandos que serão entregues a outros usuários.

Os valores válidos são:

  • Público: A variável é visível. ("Público" é o padrão.)
  • Private: A variável não está visível.

Quando uma variável é privada, ela não aparece em listas de variáveis, como as retornadas por Get-Variable, ou em exibições da unidade Variable:. Os comandos para ler ou alterar o valor de uma variável privada retornam um erro. No entanto, o usuário pode executar comandos que usam 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
Default value:Public
Valores aceites:Public, Private
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position: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
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position: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

Você pode canalizar um objeto que representa o valor da variável para Set-Variable.

Saídas

None or System.Management.Automation.PSVariable

Quando você usa o parâmetro PassThru, Set-Variable gera um objeto System.Management.Automation.PSVariable que representa a variável nova ou alterada. Caso contrário, esse cmdlet não gerará nenhuma saída.