我有一些powershell脚本,这些脚本需要使用我存储在文件中的一些字符串数据。 是否有任何方法可以让我设置一些内置变量,我可以直接在许多PowerShell脚本之间访问这些变量。因此,我不需要经常打开文件并读取每个PowerShell脚本中的数据
感谢
答案 0 :(得分:3)
您可以创建环境变量或在个人资料中定义变量
创建环境var:
PS>[Environment]::SetEnvironmentVariable("Myvar", "Test value.", "User")
PS>$env:Myvar
Test value.
此处有更多信息:http://technet.microsoft.com/en-us/library/ff730964.aspx
答案 1 :(得分: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
答案 2 :(得分: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
答案 3 :(得分:1)
您还可以将信息存储在注册表中并从那里检索。
这个Technet article解释了如何在Powershell中做到这两点。
您可以让一个“setup”脚本读取该文件并创建注册表项,然后只需从需要的脚本中读取这些条目。