如何动态创建环境变量?
How to dynamically create an environment variable?
我正在使用 powershell 脚本设置一些环境变量--
$env:FACTER_Variable_Name = $Variable_Value
FACTER 用于在人偶脚本中使用这些。
我的问题是 - 变量名和变量值都是动态的,并且是从文本文件中读取的。
我正在尝试使用
$env:FACTER_$Variable_Name = $Variable_Value
但是 $ 不是可接受的语法。当我用双引号将它括起来时,变量值没有被传递。关于如何动态使用它的任何建议。
提前致谢
[Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")
此语法允许表达式代替 "TestVariable",并且应该足以创建一个配置文件本地环境变量。第三个参数可以是 "Process",这使得新变量在 Get-ChildItem env:
或 "Machine" 中可见 - 这需要管理权限来设置变量。要检索这样的变量集,请使用 [Environment]::GetEnvironmentVariable("TestVariable", "User")
(或匹配范围,如果您选择另一个)。
在纯 PowerShell 中,如下所示:
$Variable_Name = "foo"
$FullVariable_Name = "FACTER_$Variable_Name"
$Variable_Value = "Hello World"
New-Item -Name $FullVariable_Name -value $Variable_Value -ItemType Variable -Path Env:
我正在使用 New-Item cmdlet 添加新变量,只需指定 -itemtype
和 -path
On Powershell 5,在当前shell中动态设置环境变量我使用Set-Item:
>$VarName="hello"
>Set-Item "env:$VarName" world
>$env:hello
world
>
当然,为了持久化我使用 C# 的变量 [Environment]::SetEnvironmentVariable("$VarName", "world", "User")
我正在使用 powershell 脚本设置一些环境变量--
$env:FACTER_Variable_Name = $Variable_Value
FACTER 用于在人偶脚本中使用这些。
我的问题是 - 变量名和变量值都是动态的,并且是从文本文件中读取的。
我正在尝试使用
$env:FACTER_$Variable_Name = $Variable_Value
但是 $ 不是可接受的语法。当我用双引号将它括起来时,变量值没有被传递。关于如何动态使用它的任何建议。
提前致谢
[Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")
此语法允许表达式代替 "TestVariable",并且应该足以创建一个配置文件本地环境变量。第三个参数可以是 "Process",这使得新变量在 Get-ChildItem env:
或 "Machine" 中可见 - 这需要管理权限来设置变量。要检索这样的变量集,请使用 [Environment]::GetEnvironmentVariable("TestVariable", "User")
(或匹配范围,如果您选择另一个)。
在纯 PowerShell 中,如下所示:
$Variable_Name = "foo"
$FullVariable_Name = "FACTER_$Variable_Name"
$Variable_Value = "Hello World"
New-Item -Name $FullVariable_Name -value $Variable_Value -ItemType Variable -Path Env:
我正在使用 New-Item cmdlet 添加新变量,只需指定 -itemtype
和 -path
On Powershell 5,在当前shell中动态设置环境变量我使用Set-Item:
>$VarName="hello"
>Set-Item "env:$VarName" world
>$env:hello
world
>
当然,为了持久化我使用 C# 的变量 [Environment]::SetEnvironmentVariable("$VarName", "world", "User")