繁体   English   中英

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

[英]Powershell Setting Environment variable for local variable

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

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

$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)

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

您还可以在 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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM