我有一些 powershell 脚本,这些脚本需要使用一些我存储在文件中的字符串数据。是否存在任何方法可以让我设置一些内置变量,并且我可以在许多 powershell 脚本之间直接访问这些变量。所以我不需要经常打开文件并读取每个 powershell 脚本中的数据
谢谢
我有一些 powershell 脚本,这些脚本需要使用一些我存储在文件中的字符串数据。是否存在任何方法可以让我设置一些内置变量,并且我可以在许多 powershell 脚本之间直接访问这些变量。所以我不需要经常打开文件并读取每个 powershell 脚本中的数据
谢谢
您可以创建环境变量或在配置文件中定义变量
ex创建环境变量:
PS>[Environment]::SetEnvironmentVariable("Myvar", "Test value.", "User")
PS>$env:Myvar
Test value.
更多信息在这里:http ://technet.microsoft.com/en-us/library/ff730964.aspx
我认为全局变量是您需要的,本文描述了不同的变量范围。
看起来您可能有很多变量,因此一种方法是创建具有多个属性的自定义对象并将对象存储在全局范围内,这样只会创建一个全局变量。
# 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
我会把它们放在一个 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
您还可以将信息存储在注册表中并从那里检索。
这篇Technet 文章解释了如何在 Powershell 中进行这两种操作。
您可以让一个“设置”脚本读取文件并创建注册表项,然后从需要的脚本中读取这些条目。