Om du någonsin har hört talas om att ändra ett filtillägg från EXE till COM, kanske du har undrat om det bara kunde fungera på några sällsynta filer eller om det skulle fungera på nästan alla EXE-filer du har. Dagens SuperUser Q & A-inlägg har svaret på en nyfiken läsares fråga.
Dagens Fråga & Svar-session kommer till oss med tillstånd av SuperUser - en underavdelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
Frågan
SuperUser-läsaren Royi Namir vill veta om EXE-filtillägg alltid kan ersättas med COM-filer ?:
Vårt antivirusprogram lät mig inte kopiera en EXE-fil till min Windows 7-startmapp (till exempel calc.exe) eftersom det är en EXE-fil. Jag ändrade sedan filtillägget från EXE till COM på filen och kunde enkelt kopiera det till mappen utan problem (mycket professionellt).
Och naturligtvis fungerar calc.com lika bra som calc.exe, vilket fick mig att undra. När fungerar ett program med ett EXE-filtillägg inte när tillägget ändras till COM? Nästan alla EXE-filer som jag har kontrollerat har fungerat. Jag skulle gärna veta orsakerna till ”varför och varför inte” i saken.
Kan EXE-filtillägg alltid ersättas med COM-filer?
Svaret
SuperUser-bidragsgivaren Math Man har svaret för oss:
Det har att göra med filens interna format. Ursprungligen var COM-filer enkla minnesbilder och EXE-filer hade massor av rubriker associerade med sig. Som ett resultat kunde du inte byta namn på dem.
När tiden gick och de var tvungna att göra saker bakåtkompatibla ändrade Microsoft det så att operativsystemet tittar på själva filen för att avgöra vilken typ av fil det är istället för tillägget. Som ett resultat ignorerar Windows tillägget helt när du kör den döpta filen.
Besök länkarna nedan för en mer detaljerad och omfattande förklaring.
Vad är skillnaden mellan .com, .exe och .bat? [StackOverflow]
Vad är skillnaden mellan COM- och EXE-tilläggen? [Microsoft Developer Blog]
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa fler svar från andra tekniskt kunniga Stack Exchange-användare? Kolla in hela diskussionstråden här .