кожен виконуваний файл у Windows має розширення .exe
Це неправильно. В DOS було 2 виконуваними розширення файлів: *.COMі *.EXE. Windows успадкував їх, тому він також підтримує * .com та * .exe . Зауважте, що * .exe - це просто "контейнер", який містить різні виконувані формати
Якщо ви запускаєте команду без розширення, Windows додасть розширення в %pathext%змінну середовища і шукатиме, поки не знайде перший файл з цим ім'ям. Значення за замовчуванням змінної є таким
>echo %pathext%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Як ви бачите, є й інші типи виконуваних файлів, які запускається Windows (без розширення), але більшість з них є сценаріями, а не бінарними виконуваними файлами .
Тим не менш, Windows насправді не використовує розширення для визначення формату файлу. Будь-які файли, що починаються зMZ (що є підписом для формату MZ) , розглядаються як виконуваний файл .
У Windows 10 також є можливість запускати бінарні файли ELF Linux із впровадженням Windows-підсистеми-для-Linux
Файли налаштування в Windows також часто надаються у файлах * .msi, формат яких читає Windows Installer , хоча строго кажучи, це не виконуваний файл