当前位置:  开发笔记 > 小程序 > 正文

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

如何解决《从cmd.exe设置持久环境变量》经验,为你挑选了2个好方法。

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

我想从命令行使用批处理文件.据我所知,使用set只会更改我将在命令窗口中调用的进程的变量.

我想明确地设置它,所以稍后,当运行一个新进程时,它将使用我设置的那些新设置.有没有办法从命令行执行此操作?



1> Vik David..:

使用SETX命令(注意'x'后缀)来设置cmd窗口关闭后持久存在的变量.

虽然值得阅读如果打印用法(setx /?)时显示的"注释",特别是:

2)在本地系统上,此工具创建或修改的变量将在以后的命令窗口中可用,但在当前的CMD.exe命令窗口中不可用.

3)在远程系统上,此工具创建或修改的变量将在下次登录会话中可用.

在PowerShell中,[Environment] :: SetEnvironmentVariable命令.


小心使用SETX,它会将你的变量长度截断为1024 char ...操作%path%时非常危险.
它适用于我的Windows 7.您使用的是哪个版本的Windows?
使用Power Shell,您可以执行[[Environment] :: SetEnvironmentVariable('PATH',“无论您需要什么,”,“机器”)`,请参见https://msdn.microsoft.com/zh-cn/library/ 96xafkes(v = vs.110).aspx

2> David Heffer..:

环境变量的MSDN文档告诉您该怎么做:

若要以编程方式添加或修改系统环境变量,将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项,然后广播WM_SETTINGCHANGE消息,并将lParam设置为字符串"Environment".这允许应用程序(如shell)获取更新.

您当然需要管理员权限才能执行此操作.我知道无法从Windows批处理广播Windows消息,因此您需要编写一个小程序来执行此操作.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有