Windows .com、.exe和.bat之间的区别?

Windows .com、.exe和.bat之间的区别?,windows,operating-system,dos,Windows,Operating System,Dos,a.bat、a.com和a.exe扩展名之间有什么区别?bat(ch)文件是由命令解释程序执行的脚本 exe文件是编译后的二进制代码,直接在cpu上执行 com文件是过去创建小型exe的遗留文件。.bat是批处理文件。它被解释了 .exe是一个常规的可执行程序文件 一个.com文件,至少对于MS-DOS来说,丢失了许多元数据,并加载到主内存中的特定偏移量中。它比.exe小我想你指的是Windows “a.bat”应该是一个批处理文件,Windows/DOS相当于一个脚本文件 如今,“a.com”

a.bat、a.com和a.exe扩展名之间有什么区别?

bat(ch)文件是由命令解释程序执行的脚本

exe文件是编译后的二进制代码,直接在cpu上执行


com文件是过去创建小型exe的遗留文件。

.bat是批处理文件。它被解释了

.exe是一个常规的可执行程序文件


一个.com文件,至少对于MS-DOS来说,丢失了许多元数据,并加载到主内存中的特定偏移量中。它比.exe小

我想你指的是Windows

“a.bat”应该是一个批处理文件,Windows/DOS相当于一个脚本文件


如今,“a.com”和“a.exe”应该是等价的。然而,在过去,“com”文件是可执行文件,“exe”文件是可移植的可执行文件或基于Windows的可执行文件。现在这是一个难题,因为“www.example.com”格式的文件可以存在于你的硬盘上,很多人把这样的文件误认为是web链接。更糟糕的是,Windows通常会先执行“com”文件,再执行“exe”文件。

.BAT-批处理文件:命令列表(基本上是包含命令行命令的文本文件)

.COM-加载到固定内存块中的DOS可执行文件(源于多任务之前)


.EXE-可执行文件-Windows平台上的标准应用程序最初,
.COM
文件是由8086代码(即16位x86)组成的文本块。它意味着在一个固定地址加载,加载程序将直接跳转到其地址的第一个字节。它的尺寸也很有限

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

然而,DOS和Windows最终采用了一种模式,即
.COM
.EXE
中的文件扩展名没有任何意义。程序加载器首先检查文件的前两个字节。如果它恰好是字符串
MZ
(),它将把它当作
EXE
,否则它将把它当作
COM
文件来加载。由于
MZ
无法映射到合理的x86指令来启动程序,因此他们可以不受影响。Net效果:在某些版本的DOS/Windows中,
.EXE
可以用
.COM
命名,反之亦然。例如,在许多DOS/Windows版本中,著名的
COMMAND.COM
实际上是一个
EXE

我不确定上一段内容在多大程度上适用于基于NT的Windows版本。我想现在他们已经完全放弃了
.COM
的东西


最后,
.BAT
文件是要执行的命令列表,就像在命令提示符下键入命令一样。然而,现在大多数人把它们命名为
.CMD

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

虽然exe和BAT文件通常具有类似的用途,但它们使用完全不同的文件格式。这两种文件类型都可用于在Windows中创建可执行内容,但BAT文件在可执行的命令中受到限制。由于BAT文件包含人类可读的文本,因此它们可以轻松编辑,因此通常用于自定义脚本任务。另一方面,EXE文件包含使用编译器生成的复杂二进制数据。由于EXE文件支持比BAT文件更复杂的命令,因此大多数Windows应用程序都以EXE格式保存

我也在寻找相同的查询,并找到了粘贴在这里的内容

请参考下面的链接,您会发现它很有用,它完美地回答了您的问题:

实际上,.com和.exe都是二进制可执行文件,而.bat基本上是一个批处理文件。现在假设您有许多同名但扩展名不同的文件

例如,
a.com
a.exe
,如果您正在运行命令提示符文件a。它将首先执行
a.com
(仅当它存在时),否则将运行
a.exe
。或者说
a.exe
也不存在,那么它将查找
a.bat
执行。

  • BAT(batch的缩写)文件是包含 一系列Windows命令
  • .EXE(可执行文件的缩写)是包含 更复杂的可执行二进制代码
  • COM文件是DOS可执行文件,现在它与.EXE相同

查找可执行文件的优先顺序()有时在绑定时也很有用(虽然很少)…在Windows出现之前存在exe文件。实际上,可移植可执行文件在Windows出现之前就存在。参见Wikipedia.MZ代表MORIN Zobowski-他设计并实现了EXE头文件的第一个版本。:)您可以将任何.exe文件重命名为.com,它将正常运行-这没有什么区别。仅仅因为它运行,并不意味着它可以工作!EXE和COM就像是同一制造商生产的两款完全不同的汽车。@George Edison我很确定32位NT仍将运行Win16 EXE。在Visual Studio中,“devenv.EXE”是Visual Studio的GUI版本,“devenv.COM”是命令行生成工具版本。它实际上是一个EXE,刚刚重命名为.com。但由于“.com”在路径搜索中具有优先权,因此在控制台窗口中键入“devenv”将启动命令行生成工具。Neat trick应该希望Windows GUI EXE本身也有一个命令行版本。另请参阅