当我们在终端中输入命令并按下回车键时,它会首先搜索当前目录,如果找不到任何内容,它会搜索 PATH 并查看其中是否存在该名称的内容。如果找到内容,它会运行它。如果找不到任何内容,它会输出错误消息。这是正确的吗?
如果是这样,如果当前目录中存在与 PATH 中同名的程序,或者如果有两个 PATH 条目包含同名程序(当然在不同的位置),会发生什么情况。如何解决此类冲突?
答案1
Windows 从第一个条目到最后一个条目搜索路径。因此,如果某个程序存在于 2 个文件夹中,并且两个文件夹也都在环境中列出PATH
,则命令提示符将执行以下机制:
你跑program.exe
- program.exe 是否位于当前文件夹中?
- program.exe 是否位于第一个条目中
%PATH%
? - program.exe 是否位于第二个条目中
%PATH%
?
并将继续如此。
它将检查每个文件夹%PATH%
直到program.exe
找到或根本找不到。
如果在此阶段未找到,您将收到错误消息,提示无法找到该程序,并且您必须检查拼写。
因此,文件夹越靠近字符串的左边%PATH%
,其优先级就越高,但如果程序存在于当前文件夹中,则%PATH%
根本不会检查。