Windows 10:添加了环境变量,但未使用“echo”打印

Posted

技术标签:

【中文标题】Windows 10:添加了环境变量,但未使用“echo”打印【英文标题】:Windows 10: Environment variable added, but not printed with 'echo' 【发布时间】:2018-12-14 22:54:19 【问题描述】:

我在 Windows 10 上添加了LOG_LEVEL 作为系统环境变量,并将其值设置为INFO

然后(仅在按下 OK 并关闭该窗口后),我打开了一个命令行终端并输入了echo %LOG_LERVEL%,它打印了...%LOG_LEVEL%

当我在添加我之前已经存在的环境变量上尝试相同的环境变量时,例如 - echo %OS%,它会打印 Windows_NT

现在,我尝试在几个不同的路径中关闭并重新打开命令行终端。

在其中一个(我现在无法重现)中,该命令确实打印了INFO(我的变量的值)。

当我使用 Power Shell(微软在上次更新时将新的命令行终端插入我的系统,迫使旧的命令行从上下文菜单中消失)尝试同样的事情时,情况更糟,因为它既不能识别我添加的变量,也不能识别之前存在的其他变量。

对于上面的相同示例,echo %OS% 打印 %OS%

这是怎么回事?

【问题讨论】:

PowerShell 与命令行完全不同。不要期望环境变量以相同的方式工作。它们是从Env: 提供者访问的。 @Phylogenesis:谢谢,但 Power Shell 只是第一次失败后的又一次尝试。我的主要问题是它甚至在旧的命令行终端中都不起作用。因此,如果您能为旧的命令行终端提出解决方案,我将不胜感激。谢谢。 如果您有一个打开的cmd.exe 或 PowerShell 窗口并使用 GUI 设置环境变量,则更改不会传播到打开的窗口。您必须重新启动 cmd.exe 或 PowerShell 窗口才能看到新变量。 顺便说一句,你的问题还是太啰嗦了。请注意对您之前的问题所做的修改,并编写更简洁的新问题。 @goodvibration 要回答您关于“我们”的问题,它是guidances given on how to use this network of sites 之一。为了让以后遇到问题的其他人更容易,无论他们是来回答这个问题还是找到类似问题的答案,帖子应该尽可能简短,同时仍然包含所有必要的信息。这意味着应该避免使用“请”和“谢谢”;坚持主题,让人们回答。 There is no chit-chat. 【参考方案1】:

Powershell 不是 cmd.exe.. 如果你想在 Powershell 中打印出系统变量的值,你可以使用

[Environment]::ExpandEnvironmentVariables("%LOG_LEVEL%")

或者调用cmd.exe,执行你习惯的echo命令

cmd.exe /c "echo %LOG_LEVEL%"

如果你真的讨厌 powershell 并想回到旧的 cmd.exe,我相信你可以(仍然)这样做。在这里阅读:https://support.microsoft.com/en-us/help/4027690/windows-powershell-is-replacing-command-prompt

【讨论】:

谢谢,但这并不能回答我最初和主要的问题 - 我的环境变量为什么没有在旧的命令行终端中打印出来 奇怪..我无法重现。我使用的是 Windows 10 Pro 版本 1803,对我来说它按预期工作。 set 命令是否以正确的值显示您的变量? 我通过 GUI 界面设置它(即通过编辑 Windows 系统环境变量)。 以管理员或用户身份运行命令行工具有什么不同吗? $env:LOG_LEVEL 实际上是您在 PowerShell 中引用它的方式。【参考方案2】:

确保您没有像我一样犯愚蠢的错误并输入错误的变量名。 就我而言,我花了一段时间(即使在检查之后)才注意到我将变量设置为 JAVE_HOME 而不是 JAVA_HOME

【讨论】:

【参考方案3】:

如果您在命令行窗口中使用“set”,则会创建一个临时环境变量,当您关闭窗口时该变量会丢失。如果您想要一个永久的,您可以使用“setx”或使用控制面板中的系统属性对话框。

【讨论】:

以上是关于Windows 10:添加了环境变量,但未使用“echo”打印的主要内容,如果未能解决你的问题,请参考以下文章

环境变量不起作用

如何在Windows10下配置anaconda环境变量?

Windows10配置Java环境变量

windows10如何设置环境变量

windows10如何设置环境变量

《转》windows下通过cmd切换python2和python3版本