【问题标题】:Why is the Powershell Environment PATH different to the System Environment PATH?为什么 Powershell 环境 PATH 与系统环境 PATH 不同?
【发布时间】:2010-10-07 11:46:21
【问题描述】:

我遇到了这种奇怪的情况:

我的用户和系统的 PATH 变量与 powershell 中的 PATH 不同。

当我这样做时:

PS C:\$env:path
C:\Windows\System32\WindowsPowerShell\v1.0\;c:\oldpath

但是这是不正确的,它看起来像是卡在我系统的某个旧 PATH 变量上,所以我在它上面所做的所有 udpates 都没有改变这个变量(每次更改后我都会重新启动以进行测试) .

为什么会这样?我必须为 powershell 设置一个 PATH 变量吗?

【问题讨论】:

  • 你是如何改变路径的?仅使用 $env:Path = foo 更改它不会在会话中持续存在。
  • 我像往常一样从计算机属性更改 PATH,而不是从控制台。
  • 所以你设置了路径然后重新启动你的powershell会话,它不是你改变它的?
  • 不,我每次测试后都重新启动它

标签: powershell path environment-variables


【解决方案1】:

更改可能会“延迟”,因此请尝试以下一种或多种解决方案:

  • 注销然后重新打开
  • 任务管理器 > 重新启动“Windows 资源管理器” (explorer.exe)
  • 重新启动您的启动器应用(launchy、SlickRun 等)
  • 重启

说明:
Powershell 将继承启动它的进程的环境(这取决于您如何启动它)。这通常是交互式 shell (explorer.exe)。当您从计算机属性修改环境时,您会修改 explorer.exe 的环境,因此如果您从 explorer.exe 启动 powershell(例如从开始菜单),您应该会看到新环境。

但是,如果您从其他东西(比如您已经打开的 cmd.exe shell)启动它,那么您不会因为该进程是在旧环境下启动的。

换句话说:小心你如何启动事物。

【讨论】:

  • 在我的情况下,即使在重新启动之间,VS Code 中的 Powershell 窗口的状态也会保留。当我最终在 VS Code 中主动终止 Powershell 窗口并重新打开它时,它得到了新的更新系统路径变量。
  • 任务管理器>重启“Windows资源管理器”解决了我的问题。我不敢相信我必须这样做。
【解决方案2】:

就我而言,我安装了一个应用程序,该应用程序通过创建一个将覆盖$env:PATH 并在每次启动 powershell 时破坏现有配置的 powershell 配置文件错误地将自身添加到 PATH 中。

检查您是否在 USER\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 有个人资料,以及它是否在做任何可疑的事情,例如设置 $env:PATH

【讨论】:

    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 2014-02-24
    • 2014-06-27
    • 2021-10-03
    • 2016-11-07
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多