Escolar Documentos
Profissional Documentos
Cultura Documentos
about_Scopes
DESCRIÇÃO RESUMIDA
Explica o conceito de escopo no Windows PowerShell e mostra como
definir e alterar o escopo de elementos.
DESCRIÇÃO LONGA
O Windows PowerShell protege o acesso a variáveis, aliases, funções
e unidades do Windows PowerShell (PSDrives), limitando onde podem ser
lidos e alterados. Com a imposição de algumas regras simples de
escopo, o Windows PowerShell ajuda a assegurar que você não altere
inadvertidamente um item que não deveria ser alterado.
Global:
O escopo em vigor quando o Windows PowerShell é iniciado.
As variáveis e as funções presentes quando o Windows PowerShell
é iniciado foram criadas no escopo global. Isso inclui variáveis
automáticas e preferenciais. Inclui também as variáveis, os aliases
e as funções nos seus perfis do Windows PowerShell.
Local:
O escopo atual. O escopo local pode ser o escopo global ou
qualquer outro escopo.
Script:
O escopo criado durante a execução de um arquivo de script.
Somente os comandos no script são executados no escopo de
script. Para os comandos de um script, o escopo de script
é o escopo local.
Específico:
Os itens no escopo específico não podem estar fora do escopo
atual. Você pode usar o escopo específico para criar uma versão
específica de um item com o mesmo nome em outro escopo.
Escopos numerados:
Você pode fazer referência a escopos por nome ou por um número
que descreve a posição relativa de um escopo em relação a outro.
Escopo 0 representa o escopo atual ou local. Escopo 1 indica
o escopo pai imediato. Escopo 2 indica o pai do escopo pai,
e assim por diante. Os escopos numerados serão úteis se você
tiver criado muitos escopos recursivos.
Herança
Modificadores de escopo
$[<modificador-de-escopo>]:<nome> = <valor>
$a = "um"
$global:a = "um"
$script:a = "um"
function global:Hello
{
write-host "Olá, mundo"
}
$test
$global:test
A opção AllScope
Gerenciando o escopo
c:\scripts\sample.ps1
. c:\scripts.sample.ps1
& c:\scripts.sample.ps1
Sessões:
Uma sessão é um ambiente no qual o Windows PowerShell é executado.
Quando você cria uma sessão em um computador remoto, o Windows
PowerShell estabelece uma conexão persistente com o computador
remoto. A conexão persistente permite que você use a sessão para
vários comandos relacionados.
Módulos:
Você pode usar um módulo do Windows PowerShell para compartilhar
e fornecer ferramentas do Windows PowerShell. Um módulo é uma unidade
que pode conter cmdlets, scripts, funções, variáveis, aliases
e outros itens úteis. A menos que explicitamente definido, os itens
em um módulo não são acessíveis de fora do módulo. Portanto, você
pode adicionar o módulo à sua sessão e usar os itens públicos sem se
preocupar, pois os outros itens não podem anular cmdlets, scripts,
funções e outros itens na sua sessão.
Prompts aninhados:
De forma semelhante, os prompts aninhados não têm seus
próprios escopos. Quando você entra em um prompt aninhado,
ele é um subconjunto do ambiente, mas você permanece dentro
do escopo local.
Opção particular:
Aliases e variáveis têm uma propriedade Option que pode tirar
um valor de Private. Itens que têm a opção Private podem ser
exibidos e alterados no escopo em que foram criados, mas não
podem ser exibidos ou alterados fora desse escopo.
EXEMPLOS
C:\PS> $ConfirmPreference
High
$ConfirmPreference = "Low"
"O valor de `$ConfirmPreference é $ConfirmPreference."
C:\PS> $ConfirmPreference
High
Esse exemplo mostra que as alterações no valor de uma variável
no escopo de script não afetam o valor daquela variável no
escopo pai.
$test = "Global"
# Em Sample.ps1
$test = "Local"
"O valor local de `$test é $test."
"O valor global de `$test é $global:test."
C:\PS> $test
Global
$test = "Global"
# Em Sample.ps1
$global:test = "Local"
"O valor global de `$test é $global:test."
C:\PS> $test
Local
C:\PS> $ptest
1
C:\PS> $ptest = 2
C:\PS> $ptest
2
# Em Sample.ps1
CONSULTE TAMBÉM
about_Variables
about_Environment_Variables
about_Functions
about_Script_Blocks