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

时间:2015-07-07 17:11:34

标签: windows environment-variables

我一直在为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系统认为它们设置错误。) 如何访问相同的环境变量给我不同的输出? 有没有办法可以发生这种情况? 它们存储在哪里,以便我可以手动编辑它们的存储位置?

1 个答案:

答案 0 :(得分:2)

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