无法从PATH环境变量

时间:2017-03-23 14:04:35

标签: windows cygwin

我最近不得不重新安装Cygwin并且这样做,我遇到了一些应用程序的问题,因为Cygwin似乎被附加到我的PATH环境变量。我试图按照这些说明https://www.java.com/en/download/help/path.xml删除它,但发生了一些奇怪的事情。如果我在'环境变量'下查看Path的值,Cygwin就不存在;但是如果我在cmd.exe中输入PATH,我会看到Cygwin会在PATH的末尾附加。你能帮我知道从PATH中删除Cygwin吗?

例如,这就是我在环境变量窗口中看到的路径值:

  

路径= C:\ Program Files(x86)\ Intel \ iCLS Client \; C:\ Program   FILES \英特尔\的ICL   客户端\; C:\ ORACLE \ 11g_R2_x64 \管理\ 11.2.0 \ Client_1与\ BIN; C:\ ProgramData \ ORACLE \的Java \ javapath;的%SystemRoot%\ SYSTEM32;的%SystemRoot%;%SYSTEMROOT%\ SYSTEM32 \ WBEM;% SYSTEMROOT%\ SYSTEM32 \ WindowsPowerShell \ V1.0 \;%SYSTEMROOT%\ SYSTEM32 \ WindowsPowerShell \ V1.0 \; C:\ PROGRAM   Files \ Intel \ Intel(R)Management Engine Components \ DAL; C:\ Program Files   (x86)\ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program   Files \ Intel \ Intel(R)Management Engine Components \ IPT; C:\ Program Files   (x86)\ Intel \ Intel(R)管理引擎   组件\ IPT;%SYSTEMROOT%\ System32下\ WindowsPowerShell \ V1.0 \; C:\ APPS \ Anaconda3; C:\ APPS \ Anaconda3 \脚本; C:\ APPS \ Anaconda3 \库\ BIN

这就是我在cdm.exe中看到的:

  

PATH PATH = C:\ Program Files(x86)\ Intel \ iCLS   Client \; C:\ Program Files \ Intel \ iCLS Clien   吨\; C:\甲骨文\ 11g_R2_x64 \管理员\ 11.2.0 \的Client_1 \ BIN; C:\ ProgramData \甲骨文\   的Java \ javapath; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ WINDOWS \ SYSTEM32 \ WBEM; C:\ WINDOWS   \ System32下\ WindowsPowerShell \ V1.0 \; C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \; C:   \ Program Files \ Intel \ Intel(R)Management Engine   Components \ DAL; C:\ Program Files(x86)\ Intel \ Intel(R)Management Engine   Components \ DAL; C:\ Program Files \ Intel \ Int el(R)Management Engine   组件\ IPT; C:\ Program Files(x86)\ Intel \ Intel(R)管理   发动机   组件\ IPT; C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \; C:\应用   小号\ Anaconda3; C:\ APPS \ Anaconda3 \ Scripts中; C:\ APPS \ Anaconda3 \图书馆\ BIN; C:\ BLP \ DAPI;   C:\ BLP \ DAPI \ DDE; C:\ APPS \ cygwin64 \ BIN

正如你所看到的,在第二种情况下我有Cygwin,而在第一种情况下我没有。

更新

感谢Patrick的回答。为了补充,在Windows中,您应该能够从控制面板编辑用户和系统环境变量,如此屏幕截图所示:

enter image description here

2 个答案:

答案 0 :(得分:1)

Windows中有两个PATH变量。这两个页面都可用于环境变量。一个位于顶部窗格(用户变量),另一个位于第二个窗格(系统变量)中。它们都被称为PATH,但它们是独立且不同的实体。当您启动cmd.exe时,您最终得到的PATH变量是组合这两个变量的结果。要解决此处遇到的问题,请返回“环境变量”窗格并检查两个版本(用户和系统)。基于上面的PATH变量,我怀疑用户路径将包含以下三个条目:

C:\blp\DAPI; 
C:\blp\DAPI\DDE;
C:\Apps\cygwin64\bin

这是cmd.exe PATH中唯一的功能差异,另一个是在扩展了SYSTEMROOT之类的变量之后。您应该能够删除那里的Cygwin目录。

答案 1 :(得分:0)

我的问题有所不同,但仍将我带到这里,所以希望其他人可以从中受益。 就我而言,C:\cygwin64\bin 不存在于用户变量 PATH 或系统变量 PATH 中。但是,每当我运行 python 时,它都使用存储在 C:\cygwin64\bin 中的可执行文件,而不是我安装 python 的位置。 (通过在 PowerShell 中运行 Get-Command python | Select-Object -ExpandProperty Definition 确认了这一点)。

事实证明我的问题是无论出于何种原因我的系统变量路径也包含C。是的,只需C。删除它有效地从我的路径(以及根 C:\ 目录)中删除了 C:\cygwin64\bin

因此,如果您遇到这样的问题,即您的路径中没有的东西表现得好像它是一样的,请检查是否已添加该项目的父目录。