le variabili di carico da un altro script PowerShell
-
16-09-2019 - |
Domanda
Ho diversi script che potrebbe essere il riutilizzo di variabili in modo da vorrei isolare le variabili nella loro propria scrittura Variables.ps1, cioè.
$var1 = "1"
$var2 = "2"
Sto cercando di caricare queste variabili poi stamparli nello script Main.ps1 in questo modo:
.\Variables.ps1
$var1
$var2
Questo funziona se prima ho eseguito. \ Variables.ps1 ma non se ho appena eseguito Main.ps1. Il mio ambiente è PowerShell ISE. Che cosa sto facendo di sbagliato?
Soluzione
Le variabili dichiarate in Variables.ps1
sono a "Scope Script". Cioè non si può vedere loro al di fuori del campo di applicazione dello script che li dichiara. Un modo per portare le variabili in Variables.ps1
alla portata del main.ps1
è quello di " fonte dot " Variables.ps1
. Questo, in effetti, corre Variables.ps1
presso il campo di applicazione main.ps1
. Per fare questo, basta attaccare un periodo e lo spazio prima della invocazione dello script:
. .\Variables.ps1
$var1
$var2
Altri suggerimenti
# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"
Questo funziona. Che si tratti di meglio o peggio di "approvvigionamento dot" probabilmente dipende dalle vostre specifiche esigenze.
PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >
Proprio per garantire la correttezza ... provare questo ... in main.ps1
echo "Test"
. .\Variables.ps1
echo $var1
echo $var2