Microsoft KB Archive/811528

= Command Prompt (Cmd.exe) Runs Files That Do Not Have Executable File Name Extensions =

Article ID: 811528

Article Last Modified on 12/1/2007

-

APPLIES TO


 * Microsoft Windows XP Home Edition
 * Microsoft Windows XP Professional
 * Microsoft Windows XP Media Center Edition 2002
 * Microsoft Windows XP Tablet PC Edition
 * Microsoft Windows XP Professional x64 Edition
 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Professional Edition
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows NT Server 4.0 Standard Edition
 * Microsoft Windows NT Workstation 4.0 Developer Edition

-



SYMPTOMS
When you use a command prompt (Cmd.exe, or the Windows command processor) to open a file that does not have an executable file name extension, the file may run as a program instead of being opened in the program that is registered for the file type (based on the file name extension).

For example, if you type filename or filename.txt at a command prompt, Filename.txt may run as a program instead of being opened in Notepad. This may also occur if the file is called as a command line in a batch (.bat) file or in a Windows NT command script (.cmd) file.



CAUSE
This issue may occur if the following conditions exist:
 * The file is a binary image that contains an executable header. For example, the file is a .com or .exe file that has been renamed with a different file name extension.
 * You do not specify a program for Cmd.exe to use to open the file.

When you type a file name at a command prompt, or you use a file name as a command line in a batch file or Windows NT command script, Cmd.exe calls the CreateProcess function to open the file. The CreateProcess function examines the file's contents. If the file's binary image contains an executable header (which indicates that the file is really a .com or .exe file), the file is run as a program. This behavior is compatible with previous versions of Windows NT.



WORKAROUND
Open the file by using Windows Explorer, or use the following command line to open the file in the appropriate program:

For example, to open Filename.txt in Notepad, use the following command line:

notepad filename.txt



MORE INFORMATION
Some files contain viruses or can otherwise damage your computer. If you are not confident that a file is safe, take precautions such as these before you open the file:
 * 1) Check the file with a virus scanner.
 * 2) Save your work and quit other programs.
 * 3) Disconnect from the Internet or from any other network connections.

Cmd.exe recognizes files with .com, .exe, .bat, .cmd, .vbs, .js, and .ws extensions, and any other extensions that are defined by the PATHEXT environment variable as executable files, but it can also run files without these known extensions if the file's binary image contains an executable header.

Windows and Microsoft Internet Explorer perform additional checks before opening a file. This includes determining if any program is associated with the file name extension in the registry. This MIME-type detection permits Windows Explorer and Internet Explorer to find and start the object server or program that is associated with the file name extension.

