我必须在不同的Windows机器上设置环境变量,但我不想通过访问"我的电脑"的属性屏幕来手动更改它们
我想从命令行使用批处理文件.据我所知,使用set只会更改我将在命令窗口中调用的进程的变量.
我想明确地设置它,所以稍后,当运行一个新进程时,它将使用我设置的那些新设置.有没有办法从命令行执行此操作?
使用SETX命令(注意'x'后缀)来设置cmd窗口关闭后持久存在的变量.
虽然值得阅读如果打印用法(setx /?
)时显示的"注释",特别是:
2)在本地系统上,此工具创建或修改的变量将在以后的命令窗口中可用,但在当前的CMD.exe命令窗口中不可用.
3)在远程系统上,此工具创建或修改的变量将在下次登录会话中可用.
在PowerShell中,[Environment] :: SetEnvironmentVariable命令.
环境变量的MSDN文档告诉您该怎么做:
若要以编程方式添加或修改系统环境变量,将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项,然后广播WM_SETTINGCHANGE消息,并将lParam设置为字符串"Environment".这允许应用程序(如shell)获取更新.
您当然需要管理员权限才能执行此操作.我知道无法从Windows批处理广播Windows消息,因此您需要编写一个小程序来执行此操作.