can-exe-file-extensions-always-be-replaced-with-com-ones-00

If you have ever heard of changing a file’s extension from EXE to COM, you may have wondered if it was only capable of working on a few rare files or if it would work on nearly any EXE file you have. Today’s SuperUser Q&A post has the answer to a curious reader’s question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

The Question

SuperUser reader Royi Namir wants to know if EXE file extensions can always be replaced with COM ones?:

Our antivirus software refused to let me copy an EXE file into my Windows 7 startup folder (calc.exe, for example) since it is an EXE file. I then changed the file extension from EXE to COM on the file and was able to easily copy it into the folder without problems (very professional).

And of course, calc.com works just as well as calc.exe, which got me to wondering. When will a program with an EXE file extension not work when the extension is changed to COM? Almost every EXE file that I have checked has worked. I would love to know the reasons for the “why and why not” of the matter.

Can EXE file extensions always be replaced with COM ones?

The Answer

SuperUser contributor Math Man has the answer for us:

It has to do with the internal format of the file. Originally, COM files were simple memory images and EXE files had lots of headers associated with them. As a result, you could not rename them.

As time went on and they had to make things backward compatible, Microsoft changed it so that the operating system looks at the file itself to determine what type of file it is instead of the extension. As a result, when you run the renamed file, Windows ignores the extension entirely.

Visit the links below for a more detailed and extensive explanation.

What is the Difference Between .com, .exe, and .bat? [StackOverflow]

What’s the difference between the COM and EXE extensions? [Microsoft Developer Blog]


Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.