在 PowerShell 或 cmd 中读取环境变量会产生不同的结果

Reading environmental variables in PowerShell or cmd yield different results

我一直对 Windows 7 中的环境变量问题感到困惑。

我们有一个 Jenkins 服务器无法在 %HOME% 环境变量中找到 SSH 密钥,因为它想要访问路径:

/c/users/jenkins

但是如果我使用

echo %HOME%

在正常的命令提示符 window 中,作为我的 Jenkins 用户,结果是

C:\users\jenkins

但是,如果我在 Windows PowerShell 中使用环境命令,我也会得到

/c/user/jenkins

在可从系统属性访问的普通 GUI 中 - 高级标签 -> 环境 我得到以下内容

C:\users\jenkins

我试过将它们重新设置,但问题仍然存在。就 Jenkins 获得与 PowerShell 相同的输出而言。

我该如何设置它们? (不是那个 cmd 和 Windows 系统认为它们设置错误。) 访问相同的环境变量到底是如何给我不同的输出的? 有没有一种方法可以发生这种情况? 它们存储在哪里,以便我可以手动编辑它们的存储位置?

正如@Luis 在评论中提到的,env 命令不是 PowerShell 的一部分。它可能由您安装的其他一些实用程序提供,旨在模拟 Linux env command.

要在 PowerShell 中引用环境变量,请使用 $env:<variable-name> 语法或环境提供程序 - Get-Content env:\<variable-name>.

要设置环境变量,可以使用$env:<variable-name> = "<variable-value>"

有关详细信息,请在 PowerShell 中尝试 运行 help about_Environment_Variables