不要在没有重新启动 Windows 的情况下刷新 ConEmu 中的 PATH 用户环境变量值

Саш*_*ных 3 windows path environment-variables conemu windows-10

一、总结

如果我在 ConEmu 中工作,PATH 用户环境变量的值不会为我刷新。我需要重新启动 Windows。

2. 预期行为

我使用Chocolatey refreshenv 脚本。如果我refreshenvHyper 终端Clink 中运行:

C:\Users\SashaChernykh>zeal
'zeal' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\SashaChernykh>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait…Finished..

C:\Users\SashaChernykh>zeal
Run Code Online (Sandbox Code Playgroud)

Zeal 为我成功运行。

3. 实际行为

在 ConEmu 中:

C:\Program Files\Far Manager>zeal
'zeal' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files\Far Manager>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait…Finished..

C:\Program Files\Far Manager>zeal
'zeal' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

4. 重现步骤

我通过Chocolatey下载Zeal 程序?我通过快速环境编辑器在我的用户环境变量中添加——路径:C:\Program Files (x86)\Zealzeal.exe

快速EE

? Ctrl+S.

我得到了 Clink 和 Hyper 的预期行为以及 ConEmu 的实际行为。

5. 没有帮助

  1. Refreshenv Chocolatey 脚本
  2. explorer.exe重启
  3. 关闭我所有终端的所有窗口和标签
  4. resetvars.vbs脚本
  5. ConEmuC /export PATH.

6. 不提供

  1. 请不要提供重新启动 Windows。这需要很多时间。

7. 环境

操作系统和版本:
Windows 10 Enterprise LTSB 64 位 EN
ConEmu:
170118 [64]
{Far} 模式

Bla*_*ght 6

对我来说,只要我关闭所有conemu.execonemu64.exe(或什至conhost.execmd.exe如果有,但它们不应该影响 ConEmu)进程,然后启动 ConEmu,就可以了,看看:

但请注意一件重要的事情

如果您从另一个程序(例如启动器)或通过另一个程序创建的热键或什至通过鼠标手势(使用 Strokes Plus 之类的东西)启动 ConEmu(或任何其他程序),您需要重新启动该程序以使该程序接收新环境变量/值,将提供给子程序,您可以在 Process Explorer 或 Process Hacker 等程序中查看哪些是子进程,哪些是父进程。因此,为了让孩子收到正确的环境变量/值,您需要重新启动其父级(如果您从 parent 调用 child)。