使用Powershell为本地变量设置环境变量

5

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

我尝试了以下代码($sstr是从参数设置的,但我已经硬编码它来简化代码),但我遇到了“unexpected token”错误:


``` $sstr = "key1=val1 key2=val2" foreach ($i in $sstr.split(' ')) { $pair = $i.split('=') $key = $pair[0] $value = $pair[1] Set-Item env:$key $value } ```
$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"
}

任何指出我哪里做错了的建议都将不胜感激 :)
2个回答

7
您可以使用 Set-Item 命令:
$Name,$Value='key1=val1'-split'=',2
Set-Item -LiteralPath Env:$Name -Value $Value

同时,您还可以使用 [Environment]::SetEnvironmentVariable 方法:

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

请注意,这仅设置进程环境变量。因此,它仅影响您的进程和从该点启动的子进程。

1
您还可以在PowerShell中使用Set-Variable命令:

Set-Variable -Name "..." -Value "..."

然后,您可以使用一些命令来检查变量是否正确设置:echoWrite-HostGet-Variable

  1. echo $...
  2. Write-Host "$..."
  3. Get-Variable -Name "..."
示例1:
Set-Variable -Name "Employee" -Value "John"

echo $Employee 

示例2:

Set-Variable -Name "Employee" -Value "John"

Write-Host "$Employee" 

示例3:

Set-Variable -Name "Employee" -Value "John" 

Get-Variable -Name "Employee"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接