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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top