在Windows/CMD上有哪些可执行文件类型?它们的优先级是什么?

4

例如,如果路径上有多个可执行文件,比如a.exe、a.bat,而用户输入'a'(回车),哪个文件会被执行?

Windows支持哪些其他可执行文件格式?


谢谢你们的回复,但这是三个不同的答案 - 都看起来正确。你们能不能统一一个呢? - Asad Iqbal
关于第一个问题(“可执行文件类型是什么”)和最后一个问题(“其他可执行文件格式是什么”),这些外部问题(尽管不包括有关优先级的中间问题)基本上是在旧版超级用户:在Windows上,哪些文件名扩展名表示可执行文件?中重复的。 - TOOGAM
2个回答

7

Windows会查看PATHEXT环境变量来确定哪些文件类型被视为可执行文件:

> echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

路径上第一个具有这些扩展名的匹配文件将被执行。

您可以使用assocftype命令查找文件将如何执行:

> assoc .msc
.msc=MSCFile

> ftype MSCFile
MSCFile=%SystemRoot%\system32\mmc.exe "%1" %*

你可以使用 PATHEXTassocftype 使任何文件类型可执行。

你忘记了 *.msi 文件吗? - Computer User
@ComputerUser:有趣!我的PATHEXT中没有.msi,但Windows确实会在PATH中搜索它们。显然我的答案不完整,但我不知道缺少什么。 - RichieHindle

1

那个答案是针对MS-DOS的。Windows是不同的。 - RichieHindle
不,对于Windows来说也是一样的。 - Synetech
根据知识库文章,它仅适用于MS-DOS 4.0至6.22。 - seanf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接