Tuesday, February 3, 2009

Command prompt runs file as program instead of opening it

SYMPTOMS



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:
program filename.ext

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.

REFERENCES

For additional information about computer viruses, click the following article number to view the article in the Microsoft Knowledge Base:
129972 (http://support.microsoft.com/kb/129972/EN-US/ ) Description of Computer Viruses
For additional information about MIME-type detection, visit the following Microsoft Web site:
http://msdn2.microsoft.com/en-us/library/ms775147.aspx (http://msdn2.microsoft.com/en-us/library/ms775147.aspx)
For additional information about the CreateProcess function, visit the following Microsoft Web site:
http://msdn2.microsoft.com/en-us/library/ms682425.aspx

No comments: