Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Breve descrição
Descreve como as variáveis armazenam valores que podem ser usados no PowerShell.
Longa descrição
Pode armazenar todos os tipos de valores em variáveis PowerShell. Por exemplo, armazenar os resultados dos comandos e armazenar elementos que são usados em comandos e expressões, tais como nomes, caminhos, configurações e valores.
Uma variável é uma unidade de memória na qual os valores são armazenados. No PowerShell, as variáveis são representadas por cordas de texto que começam com um sinal de dólar $ (, como $a , ou $process $my_var .
Os nomes variáveis não são sensíveis a casos, e podem incluir espaços e caracteres especiais. Mas, nomes variáveis que incluem caracteres especiais e espaços são difíceis de usar e devem ser evitados. Para mais informações, consulte nomes variáveis que incluem caracteres especiais.
Existem vários tipos diferentes de variáveis no PowerShell.
Variáveis criadas pelo utilizador: As variáveis criadas pelo utilizador são criadas e mantidas pelo utilizador. Por predefinição, as variáveis que cria na linha de comando PowerShell só existem enquanto a janela PowerShell estiver aberta. Quando as janelas PowerShell estão fechadas, as variáveis são eliminadas. Para guardar uma variável, adicione-a ao seu perfil PowerShell. Também pode criar variáveis em scripts com âmbito global, script ou local.
Variáveis automáticas: As variáveis automáticas armazenam o estado de PowerShell. Estas variáveis são criadas pela PowerShell, e a PowerShell altera os seus valores conforme necessário para manter a sua precisão. Os utilizadores não podem alterar o valor destas variáveis. Por exemplo, a
$PSHOMEvariável armazena o caminho para o diretório de instalação PowerShell.Para mais informações, uma lista e uma descrição das variáveis automáticas, consulte about_Automatic_Variables.
Variáveis preferenciais: As variáveis preferenciais armazenam as preferências do utilizador para o PowerShell. Estas variáveis são criadas pela PowerShell e são povoadas com valores padrão. Os utilizadores podem alterar os valores destas variáveis. Por exemplo, a
$MaximumHistoryCountvariável determina o número máximo de entradas no histórico da sessão.Para mais informações, uma lista e uma descrição das variáveis preferenciais, consulte about_Preference_Variables.
Trabalhar com variáveis
Para criar uma nova variável, utilize uma declaração de atribuição para atribuir um valor à variável. Não é preciso declarar a variável antes de a usar. O valor padrão de todas as variáveis é $null .
Para obter uma lista de todas as variáveis na sua sessão PowerShell, escreva Get-Variable . Os nomes variáveis são apresentados sem o sinal de dólar anterior $ () que é usado para referências variáveis.
Por exemplo:
$MyVariable = 1, 2, 3
$Path = "C:\Windows\System32"
As variáveis são úteis para armazenar os resultados dos comandos.
Por exemplo:
$Processes = Get-Process
$Today = (Get-Date).DateTime
Para mostrar o valor de uma variável, digite o nome variável, precedido por um sinal de dólar $ ().
Por exemplo:
$MyVariable
1
2
3
$Today
Tuesday, September 3, 2019 09:46:46
Para alterar o valor de uma variável, atribua um novo valor à variável.
Os exemplos a seguir exibem o valor da $MyVariable variável, alteram o valor da variável e, em seguida, exibem o novo valor.
$MyVariable = 1, 2, 3
$MyVariable
1
2
3
$MyVariable = "The green cat."
$MyVariable
The green cat.
Para eliminar o valor de uma variável, utilize o Clear-Variable cmdlet ou altere o valor para $null .
Clear-Variable -Name MyVariable
$MyVariable = $null
Para eliminar a variável, utilize o Remove-Variable ou remove-item.
Remove-Variable -Name MyVariable
Remove-Item -Path Variable:\MyVariable
Tipos de variáveis
Você pode armazenar qualquer tipo de objeto em uma variável, incluindo inteiros, cordas, matrizes e mesas de haxixe. E, objetos que representam processos, serviços, registos de eventos e computadores.
As variáveis PowerShell são vagamente dactilografada, o que significa que não se limitam a um determinado tipo de objeto. Uma única variável pode até conter uma coleção, ou matriz, de diferentes tipos de objetos ao mesmo tempo.
O tipo de dados de uma variável é determinado pelos tipos .NET dos valores da variável. Para visualizar o tipo de objeto de uma variável, utilize o Get-Member.
Por exemplo:
$a = 12 # System.Int32
$a = "Word" # System.String
$a = 12, "Word" # array of System.Int32, System.String
$a = Get-ChildItem C:\Windows # FileInfo and DirectoryInfo types
Pode utilizar um atributo tipo e uma notação de elenco para garantir que uma variável pode conter apenas tipos ou objetos específicos de objetos que podem ser convertidos para esse tipo. Se tentar atribuir um valor de outro tipo, o PowerShell tenta converter o valor para o seu tipo. Se o tipo não puder ser convertido, a declaração de atribuição falha.
Para utilizar a notação do elenco, introduza um nome tipo, incluído em parênteses, antes do nome variável (no lado esquerdo da declaração de atribuição). O exemplo a seguir cria uma $number variável que pode conter apenas inteiros, uma $words variável que pode conter apenas cordas, e uma $dates variável que pode conter apenas objetos DateTime.
[int]$number = 8
$number = "12345" # The string is converted to an integer.
$number = "Hello"
Cannot convert value "Hello" to type "System.Int32". Error: "Input string was
not in a correct format."
At line:1 char:1
+ $number = "Hello"
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [],
ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
[string]$words = "Hello"
$words = 2 # The integer is converted to a string.
$words += 10 # The plus (+) sign concatenates the strings.
$words
210
[datetime] $dates = "09/12/91" # The string is converted to a DateTime object.
$dates
Thursday, September 12, 1991 00:00:00
$dates = 10 # The integer is converted to a DateTime object.
$dates
Monday, January 1, 0001 00:00:00
Usando variáveis em comandos e expressões
Para utilizar uma variável num comando ou expressão, digite o nome variável, precedido pelo sinal de $ dólar ( ).
Se o nome variável e o sinal de dólar não estiverem incluídos em aspas, ou se estiverem incluídos em aspas duplas " ( ) o valor da variável é usado no comando ou expressão.
Se o nome variável e o sinal de dólar forem incluídos em ' aspas únicas ( ) o nome variável é usado na expressão.
Para obter mais informações sobre a utilização de aspas em PowerShell, consulte about_Quoting_Rules.
Este exemplo obtém o valor da $PROFILE variável, que é o caminho para o ficheiro de perfil do utilizador PowerShell na consola PowerShell.
$PROFILE
C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Neste exemplo, são mostrados dois comandos que podem abrir o perfil PowerShell em notepad.exe. O exemplo com marcas de dupla cotação " () utiliza o valor da variável.
notepad $PROFILE
notepad "$PROFILE"
Os exemplos a seguir usam marcas de citação única ' () que tratam a variável como texto literal.
'$PROFILE'
$PROFILE
'Use the $PROFILE variable.'
Use the $PROFILE variable.
Nomes variáveis que incluem caracteres especiais
Os nomes variáveis começam com um sinal de dólar $ () e podem incluir caracteres alfanuméricos e caracteres especiais. O comprimento do nome variável é limitado apenas pela memória disponível.
A melhor prática é que os nomes variáveis incluem apenas caracteres alfanuméricos e o caráter sublinhado _ ( ) Nomes variáveis que incluem espaços e outros caracteres especiais, são difíceis de usar e devem ser evitados.
Nomes variáveis alfanuméricos podem conter estes caracteres:
- Caracteres unicódigo destas categorias: Lu, Ll, Lt, Lm, Lo, ou Nd.
- Sublinhar
_() caráter. - Ponto de
?interrogação () caráter.
A lista que se segue contém as descrições da categoria Unicode. Para mais informações, consulte UnicodeCategoria.
- Lu - UppercaseLetter
- Ll - LowercaseLetter
- Tenente - TitlecaseLetter
- Lm - ModificarLetter
- Lo - Outras Cartas
- Nd - DecimalDigitNumber
Para criar ou exibir um nome variável que inclua espaços ou caracteres especiais, inclua o nome variável com os caracteres de chaves encaracoladas {} ( )
Os aparelhos encaracolados direcionam o PowerShell para interpretar os caracteres do nome variável como literais.
Nomes variáveis de caracteres especiais podem conter estes caracteres:
- Qualquer personagem Unicode, com as seguintes exceções:
- O caractere de fecho da cinta
}curva (U+007D). - O carácter recuado
`(U+0060). O backtick é usado para escapar de caracteres Unicode, por isso são tratados como literais.
- O caractere de fecho da cinta
PowerShell reservou variáveis $$ $? como, $^ e que contêm caracteres $_ alfanuméricos e especiais. Para mais informações, consulte about_Automatic_Variables.
Por exemplo, o seguinte comando cria a variável denominada save-items . Os aparelhos encaracolados {} são necessários porque o nome variável inclui um caracteres especiais de hífen - .
${save-items} = "a", "b", "c"
${save-items}
a
b
c
O seguinte comando obtém os itens infantis no diretório que é representado pela ProgramFiles(x86) variável ambiental.
Get-ChildItem ${env:ProgramFiles(x86)}
Para fazer referência a um nome variável que inclua aparelhos, inclua o nome variável nos aparelhos e use o carácter retroscalço para escapar aos aparelhos. Por exemplo, para criar um tipo de this{value}is variável nomeado:
${this`{value`}is} = "This variable name uses braces and backticks."
${this`{value`}is}
This variable name uses braces and backticks.
Variáveis e âmbito
Por padrão, as variáveis só estão disponíveis no âmbito em que são criadas.
Por exemplo, uma variável que cria numa função está disponível apenas dentro da função. Uma variável que cria num script está disponível apenas dentro do script. Se você pontião-fonte o script, a variável é adicionada ao âmbito atual. Para mais informações, consulte about_Scopes.
Pode utilizar um modificador de âmbito para alterar o âmbito padrão da variável. A seguinte expressão cria uma variável chamada Computers . A variável tem um âmbito global, mesmo quando é criada num script ou função.
$Global:Computers = "Server01"
Variáveis de poupança
As variáveis que cria estão disponíveis apenas na sessão em que as cria. Estão perdidos quando fechas a sessão.
Para criar a variável em todas as sessões powerShell que iniciar, adicione a variável ao seu perfil PowerShell.
Por exemplo, para alterar o valor da $VerbosePreference variável em cada sessão PowerShell, adicione o seguinte comando ao seu perfil PowerShell.
$VerbosePreference = "Continue"
Pode adicionar este comando ao seu perfil PowerShell abrindo o $PROFILE ficheiro num editor de texto, como notepad.exe. Para obter mais informações sobre os perfis powerShell, consulte about_Profiles.
A Variável: unidade
O fornecedor powerShell Variable cria uma Variable: unidade que se parece e age como uma unidade de sistema de ficheiros, mas contém as variáveis na sua sessão e os seus valores.
Para alterar para a Variable: unidade, utilize o seguinte comando:
Set-Location Variable:
Para listar os itens e variáveis na Variable: unidade, utilize os Get-Item Get-ChildItem cmdlets ou cmdlets.
Get-ChildItem Variable:
Para obter o valor de uma determinada variável, utilize a notação do sistema de ficheiros para especificar o nome da unidade e o nome da variável. Por exemplo, para obter a $PSCulture variável automática, utilize o seguinte comando.
Get-Item Variable:\PSCulture
Name Value
---- -----
PSCulture en-US
Para apresentar mais informações sobre a Variable: unidade e o fornecedor de variáveis PowerShell, escreva:
Get-Help Variable
Sintaxe variável com caminhos do provedor
Pode pré-fixá-lo a um caminho do fornecedor com o sinal de dólar $ ( ) e aceder ao conteúdo de qualquer fornecedor que implemente a interface IContentCmdletProvider.
Os seguintes fornecedores integrados da PowerShell apoiam esta notação:
Os cmdlets variáveis
PowerShell inclui um conjunto de cmdlets que são projetados para gerir variáveis.
Para listar os cmdlets, escreva:
Get-Command -Noun Variable
Para obter ajuda para um cmdlet específico, escreva:
Get-Help <cmdlet-name>
| Nome do Cmdlet | Description |
|---|---|
Clear-Variable |
Elimina o valor de uma variável. |
Get-Variable |
Obtém as variáveis na consola atual. |
New-Variable |
Cria uma nova variável. |
Remove-Variable |
Elimina uma variável e o seu valor. |
Set-Variable |
Altera o valor de uma variável. |