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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top