EXE er en vanlig filendelse som brukes i eksekverbare (engelsk: executeable) filer (programmer) i MS-DOS, Microsoft Windows og OS/2-operativsystemer. "EXE" brukes ofte som et synonym til denne type fil.

Det finnes flere forskjellige EXE-formater.

  • DOS executable: Disse kan bare bli identifisert av ASCII-stringen "MZ" eller den heksadesimale verdien 4D 5A. Disse er de minst komplekse kjørbare binære filene. ("MZ" er initialene til Mark Zbikowski, en av utviklerne av MS-DOS.)
  • 16-bit New Executable: Disse kan bli identifisert av ASCII-stringen "NE". Disse kan ikke bli kjørt fra DOS, men kan kjøres på alle Windows- og OS/2-varianter.
  • 32-bit Linear Executable: Disse kan bli identifisert av ASCII-stringen "LX". Disse kan kun kjøres av OS/2 2.0 og høyere.
  • 32-bit Portable Executable: Disse kan identifiseres av ASCII-stringen "PE". Disse kan kjøres under alle Windows NT-versjoner, og Windows 95 og høyere. De er også brukt i BeOS R3, selv om de bryter noe med PE-spesifiasjonenen, siden de ikke definerer riktig subsystem.

I tillegg til disse formatene finnes det også mange andre EXE-formater, men de brukes svært sjelden.

Når en 16-bit eller 32-bit exe-fil startes av Windows, startes eksekveringen enten ved NE eller PE. DOS kan ikke kjøre disse filene, og for å forhindre at DOS krasjer om man forsøker å kjøre en eksekverbar fil fra DOS, så starter alle eksekverbare filer med en MZ-del. Denne delen vil typisk skrive ut en beskjed dersom man starter programmet fra DOS.