Question

J'ai plusieurs scripts qui pourraient être réutilisent des variables, donc je voudrais isoler les variables dans leur propre script Variables.ps1, i.e..

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

Je suis en train de charger ces variables puis les imprimer dans le script Main.ps1 comme ceci:

.\Variables.ps1
$var1
$var2

Cela fonctionne si j'exécutons d'abord. \ Variables.ps1 mais pas si je cours juste Main.ps1. Mon environnement est PowerShell ISE. Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Les variables déclarées dans Variables.ps1 sont à "Champ d'application Script". C'est vous ne pouvez pas les voir en dehors du champ d'application du script qui les déclare. Une façon de mettre les variables Variables.ps1 à la portée de main.ps1 est de « source de points de la » Variables.ps1. Ceci, en effet, va Variables.ps1 à la portée de main.ps1. Pour ce faire, il suffit de coller une période et dans l'espace avant l'invocation du script:

. .\Variables.ps1
$var1
$var2

Autres conseils

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

Cela fonctionne. Que ce soit mieux ou pire que « l'approvisionnement point » dépend probablement de vos besoins spécifiques.

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

Juste pour assurer la justesse ... essayer ... dans main.ps1

echo "Test"
. .\Variables.ps1
echo $var1
echo $var2
scroll top