从cmd.exe设置持久性环境变量

我必须在不同的Windows机器上设置环境变量,但是我不想通过进入“我的电脑”的属性屏幕来手动更改它们

我想从命令行使用批处理文件来执行此操作。据我了解,使用set只会更改我将在命令窗口中调用的进程的变量。

我想肯定地进行设置,因此稍后,当运行新进程时,它将使用我设置的那些新设置。有没有办法从命令行执行此操作?


杨__羊羊
浏览 556回答 3
3回答

天涯尽头无女友

使用SETX命令(请注意'x'后缀)来设置在cmd窗口关闭后仍然存在的变量。例如,设置一个值为“ bar”的环境变量“ foo”:setx foo bar尽管值得一读的是打印用法(setx /?)时显示的“注释”,尤其是:2)在本地系统上,此工具创建或修改的变量将在以后的命令窗口中可用,但在当前的CMD.exe命令窗口中不可用。3)在远程系统上,此工具创建或修改的变量将在下一次登录会话时可用。在PowerShell中,[Environment] :: SetEnvironmentVariable命令。

皈依舞

有关环境变量的MSDN文档告诉您该怎么做:要以编程方式添加或修改系统环境变量,请将它们添加到HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Environment注册表项中,然后广播将lParam设置为字符串“ Environment” 的WM_SETTINGCHANGE消息。这使应用程序(例如外壳程序)可以获取您的更新。您当然需要管理员权限才能执行此操作。我不知道从Windows批处理中广播Windows消息的方法,因此您需要编写一个小程序来执行此操作。
打开App,查看更多内容
随时随地看视频慕课网APP