从参数获取环境变量的值

时间:2019-06-25 12:12:37

标签: powershell

如何获取在函数参数中命名的环境变量的值? 例如,

function echo-env($var) {echo "value of $var is $env:$var"}

返回PowerShell错误:

  

变量引用无效。 ':'后面没有有效的变量名字符。考虑使用$ {}来分隔名称。

编辑:这个被标记为重复的问题的确回答了我的问题,给了我这个工作结果:

function echo-env($var) {echo "set $var to $((Get-Item env:$var).Value)"}

2 个答案:

答案 0 :(得分:1)

一种替代方法是使用.NET:

function echo-env($var) {
    "value of '$var' is: $([Environment]::GetEnvironmentVariable($var))"
}

答案 1 :(得分:0)

改为查询env:环境提供程序PSDrive:

function echo-env {
  param([string]$var)

  if($ev = Get-Item env:\$var){
    "value of $var is $($ev.Value)"
  }
}