2009-12-08 59 views
36

我有幾個腳本,可重複使用的變量,所以我想在自己的Variables.ps1腳本隔離變量,即負載變量

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

我試圖加載這些變量然後打印出來,在這樣的Main.ps1腳本:

.\Variables.ps1 
$var1 
$var2 

,如果我先運行工作\ Variables.ps1但如果我只是運行Main.ps1。我的環境是PowerShell ISE。我究竟做錯了什麼?

回答

64

在Variables.ps1聲明的變量是在 「腳本範圍」。那就是你不能在聲明它們的腳本範圍之外看到它們。將Variables.ps1中的變量引入main.ps1範圍的一種方法是「點源」Variables.ps1。實際上,這在main.ps1的作用域中運行Variables.ps1。要做到這一點,只是你的腳本調用之前堅持一段時間和空間:

. .\Variables.ps1 
$var1 
$var2 
+3

謝謝。正是我需要的。 – Greg

0

只是爲了確保正確性......試試這個...在main.ps1

echo "Test" 
. .\Variables.ps1 
echo $var1 
echo $var2 
+0

我看到的只是「測試」輸出。 – Greg

+0

檢查出來......發佈編輯 –

+0

究竟是什麼用戶「zdan」提及! –

24
$Global:var1 = "1" 
$Global:var2 = "2" 

這工作。 「點源」的好壞取決於您的具體要求。

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

證實這也適用。 – Greg