在Windows上,哪些文件扩展名表示可执行文件?
代表什么?
我知道这个问题目前听起来有些混乱,但是这个问题很重要。当我解释其重要性时,问题将变得更加清晰。
尽管Ken White对PATHEXT变量的答案(在命令提示符的“环境”中)是一个很好的简短答案,并且该答案可能对您很有效,但答案并不完整。不完整的原因是,根据您要执行的操作,正确答案会有所不同。
例如,您可以尝试:
- 通过输入完整文件名,从“传统命令提示符”(“ CMD”)运行程序
- 通过键入基本文件名,但保留其扩展名,从“传统命令提示符”(“ CMD”)运行程序
- 使用内置在“传统命令提示符”(“ CMD”)中的“开始”命令
- 从PowerShell运行程序
- 从开始菜单上的“运行”菜单项运行程序
- 通过尝试双击与以扩展名结尾的文件相关的图标,从资源管理器运行程序
- 告诉Microsoft Internet Explorer打开下载的文件
- 使用Microsoft Windows API中的函数运行程序。(这是最终用户通常不执行的操作,但是计算机程序员可以执行此操作,因此信息与他们相关。)
这些运行程序的方法中的某些方法可能会使用不同的方法来确定可能支持的文件扩展名。特别是,使用CMD可能不同于“运行”菜单。
例如,Wes令人困惑的博客:Customizing Windows Run Command ...记录了要检查的不同位置,包括注册表项。
答案还可能取决于所使用的Microsoft Windows版本。在Windows 10中,我只是在命令提示符下键入了一个zip文件的名称,然后打开了Windows资源管理器。我似乎记得在Windows XP中不起作用(尽管在Windows XP中,我可以键入“ start filename.zip”并获得相同的效果)。因此,要么我的内存出现故障,要么Microsoft一直在尝试对Windows的较新版本进行改进。(希望对我来说是后者。)
在Windows 10的传统命令提示符(运行“ CMD”)中,当我转到一个zip文件的位置(使用“ CD”命令)并键入“ filename.zip”时,该文件将打开。当我转到该位置并键入“文件名”(不使用“ .zip”文件扩展名)时,Windows找不到该文件。但是,如果我先运行“ ECHO %PATHEXT%
”,然后运行“ ” SET PATHEXT=%PATHEXT%;.ZIP
(然后ECHO %PATHEXT%
再次运行“ ” ,以确保达到预期的效果),则可以键入“ filename”,命令提示符将找到.ZIP文件。因此,这就是%PATHEXT%变量的作用。
您可以通过运行ASSOC
命令来查看其他扩展名列表。例如,运行该命令将显示多行输出,包括以下内容(在我的系统上)-“ .zip=CompressedFolder
”。然后,通过键入“ FTYPE | FIND /I "CompressedFolder"
” 可以看到运行的内容。(这是传统命令行的意思。PowerShell不会喜欢那些未转义的引号。)(如果您只键入“ FTYPE
”而不使用该命令行的其余部分,则会看到更多有关其他扩展名的输出。)
如果我ASSOC | FIND /C "."
在Windows 10计算机上键入“ ”,那么当我以这种方式检查文件关联时,我发现输出339行。
MS KB 162059全部与调整Internet Explorer打开Office文档的方式有关。
因此,询问默认可执行文件列表太含糊。Microsoft Windows的不同组件可能使用不同的资源,因此,对于准确的答案,该问题需要更具体。
这个问题确实提到了使用资源管理器双击图标。要查看该程序使用的可执行文件列表,我相信您将需要签出注册表。您可以从命令提示符运行此命令:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
(我不在这里列出它们。在Windows 10计算机上有286个。)
那列出了扩展名。要查看更多信息,包括有关扩展的详细信息:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s
因此,如您现在所见,这个看似无害的问题实际上可能是一个非常复杂的话题。我相信我已经阐明了为什么一个问题应该非常具体,以便能够获得完整的答案,从而完全解决Windows的单个组件如何确定文件扩展名的问题。简而言之,对于Windows而言,并不是只有一个答案,因为Windows具有多个行为不同的组件。希望我已经开始证明这一点,并指出了一些其他可以显示相关信息的资源。