Pregunta

Tengo varios scripts que podrían ser variables reutilizantes, así que me gustaría aislar variables en sus propias variables. PS1 Script, es decir

$var1 = "1"
$var2 = "2"

Estoy tratando de cargar estas variables y luego imprimirlas en el script principal.ps1 así:

.\Variables.ps1
$var1
$var2

Esto funciona si ejecuto por primera vez. VariAbles.ps1 Pero no si solo ejecuto main.ps1. Mi entorno es PowerShell Ise. ¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Las variables declaradas en Variables.ps1 están en el "alcance del script". Es decir, no puedes verlos fuera del alcance del guión que los declara. Una forma de traer las variables en Variables.ps1 al alcance de main.ps1 Es para "fuente de puntos" Variables.ps1. Esto, en efecto, funciona Variables.ps1 al alcance de main.ps1. Para hacer esto, simplemente pegue un período y espacio antes de su invocación del script:

. .\Variables.ps1
$var1
$var2

Otros consejos

# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"

Esto funciona. Ya sea mejor o peor que el "abastecimiento de puntos" probablemente depende de sus requisitos específicos.

PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >

Solo para asegurar la corrección ... intente esto ... en main.ps1

echo "Test"
. .\Variables.ps1
echo $var1
echo $var2
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top