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

Powershell Setting Environment variable for local variable

我正在从命令行以 key=val key=val 的格式获取值列表,将它们拆分成键和值后,我想使用键设置一个环境变量。

我尝试了以下代码($sst​​r 是从参数设置的,但我已经对其进行了硬编码以简化代码),但我收到 'unexpected token' 错误:

$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"
}

任何对我哪里出错的建议都将不胜感激:)

您可以使用 Set-Item cmdlet:

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

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

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

注意,什么只设置进程环境变量。因此,它仅影响从该点开始的您的进程和子进程。