Powershell设置局部变量的环境变量

时间:2015-10-13 13:47:34

标签: windows powershell scripting environment-variables

我从key = val key = val格式的命令行中获取值列表,将它们拆分后再键入键和值,我想使用键设置环境变量。

我已经尝试了以下代码($ sstr是通过参数设置的,但我已经对其进行了硬编码以简化代码),但我得到了“意外的令牌”#39;错误:

$retrievedVal = "key1=val1 key2=val2"

# Split the string, with space being the delimiter, leaving key=value
$sstr = $retrievedVal .split( " " )

foreach ( $var in $sstr )
{
    $keyvalueList = $var.split( "=" )
    $env:($keyvalueList[0]) = "Test"
}

对于我出错的地方的任何建议将不胜感激:)

1 个答案:

答案 0 :(得分:5)

您可以使用Set-Item cmdlet:

$Name,$Value='key1=val1'-split'=',2
Set-Item -LiteralPath Env:$Name -Value $Value

您也可以使用[Environment]::SetEnvironmentVariable方法:

[Environment]::SetEnvironmentVariable($Name,$Value)

注意,那只能设置进程环境变量。因此,它只影响您的流程和子流程,从那时开始。