在 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
。
我一直对 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
。