windows修改完环境变量立即生效

步骤如下:
1. 我的电脑>属性>高级>环境变量,添加新环境变量或修改已有的环境变量
2. 运行“DOS命令提示符”或run cmd
3. 假设要修改PATH变量,不管PATH的原值是什么,在DOS窗口直接把PATH修改为任意值,如:输入:set PATH=C:,关闭DOS窗口。
4. 再次打开DOS窗口,输入:echo %PATH% ,这时可以发现,我的电脑>属 性>高级>环境变量里PATH已经在Windows全局生效了。

不用担心在DOS窗口的修改会影响我的电脑>属性>高级>环境变量里的修改,DOS窗口的环境变量只是Windows环境变量的一个副本,副本的改动不会影响正本,但会触发正本的刷新。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Windows 操作系统中,修改环境变量后需要重新打开命令行窗口或者重新启动计算机才能使修改生效。如果想要在 Python 脚本中实现修改环境变量立即生效的功能,可以使用以下方法: 1. 使用 `os.environ` 对象修改环境变量,并且使用 `ctypes` 模块调用 `SendMessage` API 发送消息给 Windows Explorer 进程,通知它更新环境变量。示例代码如下: ``` import os import ctypes # 修改环境变量 PATH new_path = os.environ['PATH'] + ';C:\\NewFolder' os.environ['PATH'] = new_path # 发送消息给 Windows Explorer 进程,通知它更新环境变量 HWND_BROADCAST = 0xFFFF WM_SETTINGCHANGE = 0x1A SMTO_ABORTIFHUNG = 0x0002 result = ctypes.windll.user32.SendMessageTimeoutW( HWND_BROADCAST, WM_SETTINGCHANGE, 0, 'Environment', SMTO_ABORTIFHUNG, 5000, None ) if result == 0: print('Failed to update environment variables') else: print('Environment variables updated successfully') ``` 在代码中,首先使用 `os.environ` 对象修改环境变量 PATH,然后使用 `ctypes` 模块调用 `SendMessage` API 发送消息给 Windows Explorer 进程,通知它更新环境变量。如果更新成功,`SendMessage` API 将返回一个非零值,否则返回零。 2. 使用 `winreg` 模块修改系统注册表中的环境变量,并且使用 `win32api` 模块调用 `SendMessage` API 发送消息给 Windows Explorer 进程,通知它更新环境变量。示例代码如下: ``` import winreg import win32api # 修改环境变量 PATH with winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) as hkey: with winreg.OpenKeyEx(hkey, r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 0, winreg.KEY_WRITE) as key: new_path = winreg.QueryValueEx(key, 'PATH')[0] + ';C:\\NewFolder' winreg.SetValueEx(key, 'PATH', 0, winreg.REG_EXPAND_SZ, new_path) # 发送消息给 Windows Explorer 进程,通知它更新环境变量 HWND_BROADCAST = 0xFFFF WM_SETTINGCHANGE = 0x1A SMTO_ABORTIFHUNG = 0x0002 result = win32api.SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 'Environment', SMTO_ABORTIFHUNG, 5000) if result == 0: print('Failed to update environment variables') else: print('Environment variables updated successfully') ``` 在代码中,首先使用 `winreg` 模块修改系统注册表中的环境变量 PATH,然后使用 `win32api` 模块调用 `SendMessage` API 发送消息给 Windows Explorer 进程,通知它更新环境变量。如果更新成功,`SendMessage` API 将返回一个非零值,否则返回零。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值