Compartilhar 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 (Padrã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

Esses comandos definem o valor da variável $desc como A descriptione, em seguida, 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 somente leitura

Este exemplo 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.

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

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 todos (*) para exibir todas as propriedades da variável recém-criada.

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

Exemplo 3: Entender variáveis públicas versus privadas

Este exemplo 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 está visível para o usuário.

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 Private. Essa variável pode ser lida e alterada por scripts com as permissões necessárias, mas não está visível para o usuário.

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Description

Especifica a descrição da variável.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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. Caracteres curinga são permitidos.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Force

Permite que você crie uma variável com o mesmo nome de uma variável somente leitura existente ou altere 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 de ReadOnly ou Constant. Para obter mais informações, consulte o parâmetro opção .

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Include

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

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Name

Especifica o nome da variável.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Option

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

Os valores válidos são:

  • None: não define nenhuma opção. (None é o padrão.)
  • ReadOnly: pode ser excluído. Não é possível alterar, exceto usando o parâmetro Force.
  • Constant: não pode ser excluído ou alterado. Constant é válido somente quando você está criando uma variável. Não é possível alterar as opções de uma variável existente para Constant.
  • Private: a variável está disponível apenas no escopo atual.
  • AllScope: a variável é copiada para quaisquer novos escopos criados.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para a opção parâmetro como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação binária-OR. Passar valores como uma matriz é a opção mais simples e também permite usar o preenchimento com Tab nos valores.

Propriedades do parâmetro

Tipo:ScopedItemOptions
Valor padrão:None
Valores aceitos:None, ReadOnly, Constant, Private, AllScope, Unspecified
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-PassThru

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Scope

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

  • Global
  • Local
  • Script
  • Private
  • Um número relativo ao escopo atual (0 por meio do número de escopos, em que 0 é o escopo atual e 1 é o pai).

Local é o padrão.

Para obter mais informações, consulte about_Scopes.

Propriedades do parâmetro

Tipo:String
Valor padrão:Local
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Value

Especifica o valor da variável.

Propriedades do parâmetro

Tipo:Object
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:1
Obrigatório:False
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Visibility

Determina se a variável está visível fora da sessão na qual foi criada. Esse parâmetro foi projetado para uso em scripts e comandos que serão entregues a outros usuários.

Os valores válidos são:

  • Public: a variável está visível. (Public é 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 variável : unidade. 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 gravados na sessão em que a variável foi definida.

Propriedades do parâmetro

Tipo:SessionStateEntryVisibility
Valor padrão:Public
Valores aceitos:Public, Private
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 este cmdlet.

Saídas

None

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

PSVariable

Quando você usa o parâmetro PassThru, esse cmdlet retorna um objeto PSVariable que representa a variável nova ou alterada.

Observações

O PowerShell inclui os seguintes aliases para Set-Variable:

  • Todas as plataformas:
    • set
    • sv