variables de charge d'un autre script Powershell
-
16-09-2019 - |
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?
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