.com,.exe和.bat之间的区别?

时间:2010-01-22 07:13:08

标签: windows operating-system dos

a.bat,a.com和a.exe扩展名有什么区别?

9 个答案:

答案 0 :(得分:45)

最初,.COM文件是8086代码的文字blob(即16位x86)。它意味着加载到固定地址,加载器将直接跳转到其地址的第一个字节。它的尺寸也有限。

.EXE文件包含更多标头信息。因此它需要动态链接等结构,其中DLL的代码可以在加载时被修补到.EXE的内存空间。它最初来自DOS,但它现在用于Windows。

然而,DOS和Windows最终进入了一个模型,.COM.EXE中的文件扩展名没有任何意义。程序加载器首先检查文件的前两个字节。如果恰好是字符串MZlegend 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.coma.exe以及如果您正在运行命令提示符文件a。它将首先执行a.com(仅当它存在时),否则它将运行a.exe。或者说a.exe也不存在,那么它会寻找a.bat执行。

答案 7 :(得分:-1)

  • .BAT(&#34;批次&#34;的缩写)文件是包含a的纯文本文件 一系列Windows命令。
  • .EXE(&#34;可执行文件&#34;的缩写)文件是包含的二进制文件 更复杂的可执行二进制代码。
  • .COM文件是DOS可执行文件,现在与.EXE。
  • 相同

答案 8 :(得分:-3)

.bat文件直接影响CPU的性能。 同时,.exe文件将由解释器编译,然后在CPU上执行。