a.bat,a.com和a.exe扩展名有什么区别?
答案 0 :(得分:45)
最初,.COM
文件是8086代码的文字blob(即16位x86)。它意味着加载到固定地址,加载器将直接跳转到其地址的第一个字节。它的尺寸也有限。
.EXE
文件包含更多标头信息。因此它需要动态链接等结构,其中DLL的代码可以在加载时被修补到.EXE
的内存空间。它最初来自DOS,但它现在用于Windows。
然而,DOS和Windows最终进入了一个模型,.COM
和.EXE
中的文件扩展名没有任何意义。程序加载器首先检查文件的前两个字节。如果恰好是字符串MZ
(legend has it this stands for the initials of an early Microsoft employee),则会将其视为EXE
,否则会将其加载为COM
文件。由于MZ
没有映射到合理的x86指令来启动程序,因此它们可以避免这种情况。净效果:在某些版本的DOS / Windows中,.EXE
可以用.COM
命名,反之亦然。例如,在许多版本的DOS / Windows中,着名的COMMAND.COM
实际上是EXE
。
我不确定前一段适用于基于NT的Windows版本。我想他们现在完全放弃了.COM
的东西。
最后,.BAT
文件是要执行的命令列表,就像在命令提示符下键入它们一样。但是现在大多数人将它们命名为.CMD
。
答案 1 :(得分:1)
.bat是一个批处理文件。它被解释了。
.exe是一个常规的可执行程序文件。
<。> .com文件,至少对于MS-DOS,有许多元数据丢失,并被加载到主内存中的特定偏移量。它小于.exe答案 2 :(得分:1)
我认为你的意思是Windows?
“a.bat”应该是批处理文件,Windows / DOS等效于脚本文件。
“a.com”和“a.exe”这些天应该是等价的。但是,在Windows 3.x天后,“com”文件是DOS可执行文件,其中“exe”文件是可移植可执行文件或基于Windows的可执行文件。现在这是一个问题,因为“www.example.com”格式的文件可能存在于您的硬盘驱动器上,并且许多人将此类文件误认为是Web链接。更糟糕的是,Windows通常会尝试在“exe”文件之前执行“com”文件。
答案 3 :(得分:0)
bat(ch)文件是由命令解释程序执行的脚本。
exe文件是编译的二进制代码,直接在cpu上执行。
com文件是过去创建一个小exe的遗物。
答案 4 :(得分:0)
.BAT - 批处理文件:命令列表(基本上是带命令行命令的文本文件)
.COM - DOS可执行文件加载到一个固定的内存块中(源于多任务处理之前)
.EXE - 可执行文件 - Windows平台上的标准应用程序
答案 5 :(得分:0)
虽然EXE和BAT文件通常用于类似目的,但它们使用完全不同的文件格式。这两种文件类型都可用于在Windows中创建可执行内容,但BAT文件在它们可以执行的命令中受到限制。由于BAT文件包含人类可读的文本,因此可以轻松编辑它们,因此通常用于自定义脚本编写任务。另一方面,EXE文件包含使用编译器构建的复杂二进制数据。由于EXE文件支持比BAT文件更复杂的命令,因此大多数Windows应用程序都以EXE格式保存。
我也在寻找相同的查询,并找到了粘贴在这里的东西。
请参考以下链接,您会发现它很有用,它完美地回答了您的问题:
Difference between .BAT and .EXE
答案 6 :(得分:0)
实际上,.com和.exe都是二进制可执行文件,而.bat基本上是一个批处理文件。现在假设您有许多具有相同名称但扩展名不同的文件。
例如,a.com
,a.exe
以及如果您正在运行命令提示符文件a。它将首先执行a.com
(仅当它存在时),否则它将运行a.exe
。或者说a.exe
也不存在,那么它会寻找a.bat
执行。
答案 7 :(得分:-1)
答案 8 :(得分:-3)
.bat文件直接影响CPU的性能。 同时,.exe文件将由解释器编译,然后在CPU上执行。