Windows在PATH中搜索可执行文件的相对顺序是什么?

时间:2009-10-31 05:07:31

标签: batch-file path vim wrapper

如果我有a.com,a.cmd,a.bat和a.exe文件%PATH%,如果我只调用命令“a”,Windows会选择哪一个?这是官方规定的M $?

我只是想用-n包装我的gvim.exe可执行文件,但我的gvim.bat似乎既不是从命令行运行,也不是从运行对话框运行。

3 个答案:

答案 0 :(得分:14)

请参阅Microsoft Technet上的command search sequence

PATH和PATHEXT环境变量各自提供搜索序列的元素:PATH是要查看的目录“ where ”的有序列表,PATHEXT是文件扩展名的有序列表(“<要查找的em> what “)(如果未在命令行中明确提供扩展名)。但是,在使用PATH之前,会搜索当前目录。

PATHEXT变量默认为“.COM; .EXE; .BAT; .CMD”

答案 1 :(得分:12)

摘自mjv提供的Microsoft Technet链接:

Windows将从左到右遍历PATH中的目录(正常列表顺序)。 在每个中,它都会尝试在继续下一个PATH条目之前,从左到右定位每个PATHEXT的文件。 它找到的第一个文件获胜。

因此,在您的情况下,您需要更改PATHEXT,以便.BAT在.EXE之前(或者它将始终首先找到.exe而不是.bat,如果在同一目录中,您最有可能想要覆盖它。)并且还将你的'覆盖'gvim.bat的路径更早(最早?)放在PATH列表中,而不是找到gvim。*(因为它在沿着PATH继续之前尝试每个PATHEXT)

答案 2 :(得分:2)

我相信它会遍历%PATHEXT%并尝试每一个