windows环境路径重复

问题描述 投票:0回答:3

不知道为什么,我的

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 1.0\;C:\Program Files (x86)\Intel\OpenCL SDK .0 in\x86;C:\Program Files (x86)\Intel\OpenCL SDK .0 中\x64;C:\Program Files\Intel\Intel(R) 管理引擎组件\DAL;C:\Program Files\Intel\Intel(R) 管理引擎组件\IPT;C:\Program Files (x86)\Intel\英特尔(R) 管理引擎组件\DAL;C:\Program Files (x86)\英特尔\英特尔(R) 管理引擎组件\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\ WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell 1.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 1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Intel\OpenCL SDK .0在\x86;C:\Program Files (x86)\Intel\OpenCL SDK .0 在\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel \Intel(R) 管理引擎组件\IPT;C:\Program Files (x86)\Intel\Intel(R) 管理引擎组件\DAL;C:\Program Files (x86)\Intel\Intel(R) 管理引擎组件\IPT;C:\MinGW 中;C:\Python27;C:\Users\jie\AppData\Local\Microsoft\WindowsApps

windows command-prompt
3个回答
3
投票

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

(现在不见了,在原来的位置,但是 archive.org 有一个副本。)

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


2
投票

我还在想为什么有些进程在

PATH
环境变量中有重复的部分。 经过一些调查,问题是由 explorer.exe 启动的进程引起的。对于最初不是 explorer.exe 的子进程(或“子进程的子进程”)的进程,它不会发生。

我认为,Windows

user part
环境变量的
PATH
受以下因素影响:

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

进程 explorer.exe(在用户上下文中运行)加载

PATH
环境变量的两个条目。 当
HKCU\Environment\Path
存在时,我删除了测试
HKCU\Environment\1\Path
PATH
环境变量的重复部分不再存在。

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

注意

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

更多信息:关于应用程序路径的 Microsoft 文档.

注意:由

cmd.exe
或 .cmd 或 .bat 启动的进程不会查看
App Path
键,即使您使用
start process.exe
process.exe 文件也会查看
App Path\Process.exe\Path
.


1
投票

你说的路径是系统路径。它们应该保留在系统范围内的

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

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

你重复的原因(如果不是你至少)可能是你安装的某个应用程序,它不正确地编辑了

PATH
变量。

© www.soinside.com 2019 - 2024. All rights reserved.