Windows环境变量过长及修改环境变量后导致的不能开机解决方案

来源:互联网 发布:tensorflow的tpuapi 编辑:程序博客网 时间:2024/06/08 06:15

       昨晚搭建OpenCV开发环境时需要加入其可执行文件路径至环境变量中D:\software\OpenCV\build\x64\vc10\bin,遂编辑系统环境变量Path,发现问题如下:

1.环境变量编辑不了。

查了下网上的说法,确认不是权限的问题后在CMD窗口输出Path查看。发现是环境变量太长的问题,大于1024字节,导致无法继续添加。看了下http://support.microsoft.com/kb/830473/zh-cn中提到的四个解决办法:

  • 使用较短的文件夹和文件的名称。
  • 减少文件夹树的深度。
  • 将文件存储在较少的文件夹中,以便在 PATH 环境变量,需要较少的文件夹。
  • 调查可能的方法,您可以使用定位.dll 文件的减少 PATH 的从属关系。
但是软件都已经装好了不可能再去改动路径吧,上诉方法适合装机初始。现如今也只好将已有环境变量中的部分频率高长度长的路径替代了,比如:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\;

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\libnvvp\;

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\lib\Win32;

先新建环境变量CUDA,值为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA

接着将上诉的Path中的内容替换为:

%CUDA%\bin\;

%CUDA%\libnvvp\;

%CUDA%\lib\Win32;

保存重启即可。

2.系统环境变量修改后导致无法开机。

比较悲剧的是我在编辑CUDA值的时候复制错了内容,把原来的Path给复制过去了,当然出错了,直接导致开不了机,自动修复是解决不了问题的。遂使用U盘装上老毛桃的WinPE进入系统,我先尝试通过计算机->属性->高级系统设置进入,但是WinPE是32位的,与我64位的系统不相容,无法使用SystemPropertiesAdvanced.exe,也就没尝试装64位的WinPE。在尝试通过自带的regedit工具进入HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment查看当前的环境变量,但是需注意此时所见的环境变量是WinPE的,并不是我们原先系统的?修改当然无效,怎么办。也好解决,先查看环境变量的存放文件在哪。C:\Windows\System32\config,这里面有系统的环境变量,软件的环境变量等等。直接记事本打开编辑是乱码,还是得用regedit。

选中HKEY_LOCAL_MACHINE,点击右上角文件->加载配置单元,提示你选择文件,比如选中C:\Windows\System32\config\SYSTEM,会提示输入键值名,随便取个(比如123,不与其他的键值重名即可),然后在进入到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment编辑环境变量Path即可(注意备份以防丢失),最后退到HKEY_LOCAL_MACHINE,选中123,点击文件->卸载配置单元,重启原系统,OK。

另者,以后需注意可以只编辑当前用户的环境变量(只有当前用户用到的软件)和不重启使环境变量生效(参见http://blog.csdn.net/lioncode/article/details/6037683).

原创粉丝点击