我从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"
}
对于我出错的地方的任何建议将不胜感激:)
答案 0 :(得分:5)
您可以使用Set-Item
cmdlet:
$Name,$Value='key1=val1'-split'=',2
Set-Item -LiteralPath Env:$Name -Value $Value
您也可以使用[Environment]::SetEnvironmentVariable
方法:
[Environment]::SetEnvironmentVariable($Name,$Value)
注意,那只能设置进程环境变量。因此,它只影响您的流程和子流程,从那时开始。