【问题标题】:Duplicates in windows environment pathwindows环境路径重复
【发布时间】:2017-01-15 00:00:49
【问题描述】:

不知为何,我的echo %path%C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ 有很多重复。据我所知,长 %path% 很糟糕,因为它会减慢搜索过程。删除这些重复项是否安全?

我还注意到路径变量有两种版本:一种用于用户变量,另一种用于系统变量。如果我以普通用户的身份在命令提示符下键入echo %path%,它将显示这两个版本的串联(系统版本在前)。如果我要删除重复项,我应该从哪个版本中删除?

(粗体为系统版本)

C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\ System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files ( x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\ Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared ;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C: \Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Pr gram Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64 ;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel( R) 管理引擎组件\DAL;C:\Program Files (x86)\Intel\Intel(R) 管理引擎组件\IPT;C:\MinGW\bin;C:\Python27;C:\Users\jie\AppData\本地\Microsoft\WindowsApps

【问题讨论】:

  • Wonky 安装程序因破坏 PATH 系统变量而臭名昭著。尤其是英特尔是一个贪婪的名字滴管,滥用 PATH 的地狱。只需使用控制面板 > 系统 > 高级 > 环境变量来修复它。
  • 运行 => %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
  • 相关:superuser.com/questions/1223976/…(如何删除 PATH 重复项)

标签: windows command-prompt


【解决方案1】:

您提到的路径是系统路径。它们应该保留在系统范围内的PATH 变量中。您可以删除用户范围的PATH 变量中的重复项,但是您应该重新启动并检查每个应用程序是否仍在工作(不是因为您删除了重复项,而是要确保您没有误删除错误的内容)。像往常一样,在开始之前在某处备份您的 PATH 变量。

始终可以安全地删除每个范围内的重复项。列表在每个分号处拆分,并搜索列表中的每个结果路径。如果有重复,在最坏的情况下,相同的搜索只会执行两次。在最好的情况下,系统可能会识别出重复项(我不确定是否会发生这种情况),但这意味着要付出额外的努力来识别。所以你关于减速的说法无论如何都是正确的。

您重复的原因(至少不是您)可能是您在某个时候安装的某个应用程序,它不正确地编辑了 PATH 变量。

【讨论】:

  • 谢谢!现在我的 PATH 只是原始长度的 1/3。现在搜索感觉更快(或者可能只是安慰剂效应?)
  • 不客气。只要它没有变慢或破坏某些东西,我就认为它没问题。
【解决方案2】:

在 Microsoft Technet (Scriptcenter) 上还有一个小型 PowerShellScript,用于检查重复路径:How to check for duplicate paths in PATH environment variable

应在具有管理员权限的 PowerShell 环境中运行。每次卸载任何软件(Windows 10 x64)后,我都会这样做。

【讨论】:

    【解决方案3】:

    我仍然想知道为什么有些进程在PATH 环境变量中有重复的部分。 一些调查,问题是由 explorer.exe 启动的进程发生的。最初不是 explorer.exe 的子进程(或“子进程的子进程”)的进程不会发生这种情况。

    我认为,Windows PATH 环境变量的user part 受以下因素影响:

    1. 两个注册表项:
      • HKCU\Environment\Path
      • HKCU\Environment\1\Path

    进程 explorer.exe(在用户上下文中运行)加载 PATH 环境变量的两个条目。 当HKCU\Environment\1\Path 存在时,我删除了测试HKCU\Environment\PathPATH 环境变量的重复部分不再存在。

    删除或修改此注册表项应该非常小心。可能你遇到了其他意想不到的问题,因为 Windows Path 环境变量会影响当前用户启动的所有新进程。

    注意

    Microsoft 鼓励使用 App Paths,因为路径环境变量 Path 的条目越多,Windows 用于搜索指定文件的时间就越多。使用 App Paths,您可以为每个可执行文件名称指定可执行文件应搜索的文件夹。

    更多信息:Microsoft Docs about App Paths

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      相关资源
      最近更新 更多