Inconsistence on file operation when the name already exists with exe extension

Earnie Boyd
Tue Jul 10 18:59:00 GMT 2012

On Tue, Jul 10, 2012 at 12:54 PM, Aaron Schneider wrote:
> I don't see how you can run a PE executable from windows shell (cmd.exe)
> directly without the exe extension. I've just tried it in several ways and
> always prompts me the "Open with..." dialog instead of directly running it
> because treats it as data.

Ok, it did work but for some reason with XP SP2 a file with out an
extension isn't being executed.  If I copy for example
c:\windows\system32\ping.exe to and execute it searching
for then it works as expected.  If I remove .ping the
myping doesn't execute, so much for consistency.

> When you say that Windows XP and above can run an executable without
> extension, you are talking about running it from windows shell. But I was
> referring in the end to the cygwin terminal (C:\cygwin\bin\mintty.exe -)
> that I believe can run exe without extension even in older versions of
> windows, because it's bash that launches it as you said before.

Mintty is a terminal.  Bash, Csh, Ksh, Ash, etc all would run in the
Mintty terminal as the shell, you still don't understand the
difference.  The terminal is the interface providing fonts, keyboard
and mouse interactions responding to the window events.  Bash, Csh,
Ksh, etc are shells that act on the commands given it and each has its
own syntax for those commands.

> That's being said because I expect users to run commands from the cygwin
> terminal. The exe extension is needed if you want to run the linux commands
> directly from the windows shell directly (c:\cygwin\bin\ and other bash
> PATHs should be exported to the windows PATH to run them directly from
> windows shell, but you will mix things up)

The .exe isn't needed on the command line.  It is found by the Cygwin
runtime without it and the full file path given to CreateProcess when
it executes it.


Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list