Carregar variáveis de outro script do PowerShell
-
16-09-2019 - |
Pergunta
Eu tenho vários scripts que podem reutilizar variáveis, então gostaria de isolar variáveis em seu próprio script Variables.ps1, ou seja,
$var1 = "1"
$var2 = "2"
Estou tentando carregar essas variáveis e imprimi-las no script Main.ps1 assim:
.\Variables.ps1
$var1
$var2
Isso funciona se eu executar primeiro .\Variables.ps1, mas não se eu apenas executar Main.ps1.Meu ambiente é o PowerShell ISE.O que estou fazendo de errado?
Solução
As variáveis declaradas em Variables.ps1
estão em "Escopo do script".Ou seja, você não pode vê-los fora do escopo do script que os declara.Uma maneira de trazer as variáveis Variables.ps1
ao âmbito de main.ps1
é para "fonte de ponto" Variables.ps1
.Isso, com efeito, funciona Variables.ps1
no âmbito de main.ps1
.Para fazer isso, basta colocar um ponto final e um espaço antes de invocar o script:
. .\Variables.ps1
$var1
$var2
Outras dicas
# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"
Isso funciona.Se é melhor ou pior do que "fornecimento de pontos" provavelmente depende de seus requisitos específicos.
PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >
Só para garantir a correção...tente isso...em principal.ps1
echo "Test"
. .\Variables.ps1
echo $var1
echo $var2