【问题标题】:Reading environmental variables in PowerShell or cmd yield different results在 PowerShell 或 cmd 中读取环境变量会产生不同的结果
【发布时间】:2015-07-07 17:11:33
【问题描述】:

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

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

/c/users/jenkins

但是如果我使用

echo %HOME%

作为我的 Jenkins 用户在一个普通的命令提示符窗口中,结果是

C:\users\jenkins

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

/c/user/jenkins

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

C:\users\jenkins

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

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

【问题讨论】:

  • env 不是常规的 Windows / Powershell 命令,它必须是安装在您机器的其他位置的东西
  • 谢谢,不幸的是,机器被同事在一夜之间重新启动,问题已经消失。我会留意这种情况再次发生,但感谢您的帮助。

标签: windows environment-variables


【解决方案1】:

正如@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

【讨论】:

  • 谢谢你,不幸的是,机器昨晚重新启动,问题没有出现。我更喜欢找到根本原因,所以很遗憾我无法进行更多调查。
猜你喜欢
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多