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

Sar*_*raz 20 windows operating-system dos

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

asv*_*kau 45

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

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

然而,DOS和Windows最终进入了一个模型,其中文件扩展名在一个.COM.EXE没有任何意义.程序加载器首先检查文件的前两个字节.如果它恰好是字符串MZ(传说中它代表早期Microsoft员工的姓名缩写),它会将其视为一个EXE,否则它将加载它就像它是一个COM文件一样.由于MZ没有映射到合理的x86指令来启动程序,因此他们可以逃脱这一点.净效果:在某些版本的DOS/Windows中,.EXE可以使用命名,.COM反之亦然.例如,在DOS/Windows的许多版本中,着名的COMMAND.COM实际上是一个EXE.

我不确定前一段适用于基于NT的Windows版本.我想他们现在.COM完全抛弃了这些东西.

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

  • **MZ**代表**MORIN Zobowski** - 他设计并实现了EXE标题的第一个版本.:) (9认同)
  • 在Visual Studio中,"devenv.exe"是Visual Studio的GUI版本,"devenv.com"是命令行构建工具版本.它真的是一个EXE,只是重命名为.com.但由于".com"在PATH搜索中具有优先权,因此在控制台窗口中键入"devenv"会启动命令行构建工具.整洁的技巧应该要有一个Windows GUI EXE也有自己的命令行版本. (3认同)