2013-07-05 44 views
2

我有一些PowerShell腳本,這些腳本需要使用我存儲在文件中的一些字符串數據。 是否存在任何方式可以讓我設置一些內置變量,並且我可以在許多PowerShell腳本之間直接訪問這些變量。所以我不需要在每一個我的PowerShell腳本的頻繁打開文件和讀取數據如何爲PowerShell腳本設置一些內置變量?

感謝

+0

難道你不能只是把它賦值給一個變量$ foo ='blah''?只要你在同一個PS會話中運行腳本,每個腳本都可以使用'$ foo'。 –

回答

3

我覺得全局變量是你在這裏需要的,這篇文章描述了不同variable scopes

好像你可能有相當多的變量,這樣一個方法是創建具有多個屬性的自定義對象和對象存儲在全球範圍內,這種方式只創建一個全局變量。

# Create a custom psobject for storing parameters 
$global:Parameters = "" | select Param1, Param2, Param3, Param4, Param5 

# Populate each parameter 
$global:Parameters.Param1 = "parameter 1" 
$global:Parameters.Param2 = "parameter 2" 
$global:Parameters.Param3 = "parameter 3" 
$global:Parameters.Param4 = "parameter 4" 
$global:Parameters.Param5 = "parameter 5" 

# refer to the parameter in other scripts 
$global:Parameters.Param1 
1

您也可以存儲在註冊表和RET信息從那裏開始。

這個Technet article解釋瞭如何在Powershell中執行這兩個操作。

您可以用一個「setup」腳本讀取該文件並創建註冊表項,然後從需要的腳本中讀取這些項。

2

我會一個PowerShell模塊中把這些,把它Settings.psm1

$Settings = @{ 
    Var1 = 'Value1'; 
    Var2 = 'Value2'; 
} 

Export-ModuleMember -Variable Settings 

然後,在要使用/加載這些設置任何腳本,導入模塊:

Import-Module (Join-Path $PSScriptRoot Build\Settings\Settings.psm1) 

然後您可以在腳本中訪問$Settings

$Settings.Var1 
$Settings.Var1