如果 Windows PATH 中的不同位置存在同名程序,会发生什么情况?

如果 Windows PATH 中的不同位置存在同名程序,会发生什么情况?

当我们在终端中输入命令并按下回车键时,它会首先搜索当前目录,如果找不到任何内容,它会搜索 PATH 并查看其中是否存在该名称的内容。如果找到内容,它会运行它。如果找不到任何内容,它会输出错误消息。这是正确的吗?

如果是这样,如果当前目录中存在与 PATH 中同名的程序,或者如果有两个 PATH 条目包含同名程序(当然在不同的位置),会发生什么情况。如何解决此类冲突?

答案1

Windows 从第一个条目到最后一个条目搜索路径。因此,如果某个程序存在于 2 个文件夹中,并且两个文件夹也都在环境中列出PATH,则命令提示符将执行以下机制:

你跑program.exe

  1. program.exe 是否位于当前文件夹中?
  2. program.exe 是否位于第一个条目中%PATH%
  3. program.exe 是否位于第二个条目中%PATH%

并将继续如此。

它将检查每个文件夹%PATH%直到program.exe找到或根本找不到。

如果在此阶段未找到,您将收到错误消息,提示无法找到该程序,并且您必须检查拼写。

因此,文件夹越靠近字符串的左边%PATH%,其优先级就越高,但如果程序存在于当前文件夹中,则%PATH%根本不会检查。

相关内容