Eri*_*son 7 windows terminal cygwin path environment-variables
假设我进入“系统属性”窗口并向路径添加一个环境变量。如果我打开了一个终端窗口,它不会意识到变化,所以我关闭它并打开另一个。
有没有办法让它从命令行重新加载路径信息?我特别想知道如何使用 Cygwin shell 来完成它,但我很高兴知道如何处理这两种情况(Cygwin 或本机终端)。
没有将更改自动传播到子进程的内置方法,可以设置进程以侦听特定消息并进行更新,但为此需要在应用程序中进行特殊处理。
将环境传播到某些应用程序是例外而不是规则。正常的行为是,在创建进程时,它会从父进程获取环境的副本。该进程内对环境的更改不会传播回父进程。创建进程后,父进程环境中的任何进一步更改都不会传播到子进程。
在 Windows 环境中,您通过该接口设置的系统变量存储在注册表中,因此理论上您可以在 cygwin 中编写一个脚本来重新读取注册表并输出当前变量,然后使用它来更新环境当前外壳。
来自知识库 http://support.microsoft.com/kb/104011
但是,请注意,对环境变量的修改不会立即导致更改。例如,如果您在进行更改后启动另一个命令提示符,则环境变量将反映以前(而不是当前)的值。直到您注销然后重新登录后,更改才会生效。
要在不注销的情况下实现这些更改,请向系统中的所有窗口广播 WM_SETTINGCHANGE 消息,以便任何感兴趣的应用程序(如 Windows 资源管理器、程序管理器、任务管理器、控制面板等)都可以执行更新。
在 Windows 控制台中,只需输入 cmd 并按 Enter 键即可。从技术上讲,这会将您置于另一个会话中的新会话中,但它将具有新的环境变量。它不会有来自外部会话的会话信息。所以任何环境变量或命令历史记录之类的东西。
| 归档时间: |
|
| 查看次数: |
4023 次 |
| 最近记录: |