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

Pau*_*iss 3 windows powershell scripting environment-variables

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

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

$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"
}
Run Code Online (Sandbox Code Playgroud)

任何建议,我错了,将不胜感激:)

use*_*407 5

您可以使用Set-Itemcmdlet:

$Name,$Value='key1=val1'-split'=',2
Set-Item -LiteralPath Env:$Name -Value $Value
Run Code Online (Sandbox Code Playgroud)

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

[Environment]::SetEnvironmentVariable($Name,$Value)
Run Code Online (Sandbox Code Playgroud)

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