On 2019-02-19, Chris Angelico <ros...@gmail.com> wrote: > On Wed, Feb 20, 2019 at 5:05 AM Dennis Lee Bieber <wlfr...@ix.netcom.com> > wrote: >> >> On 19 Feb 2019 13:58:18 GMT, jureq <ju...@nowhere.no> declaimed the >> following: >> >> >> I could also use the 2 first bytes of a file and determine if the file >> >> is a binary because on Windows, the executable files start with b'MZ'. >> > >> >Is .bat executable? >> >> Or any of the extensions on >> PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw > > I guess you have to define the question better for Windows, since > there's no single definition of "executable". If you mean "typing just > the base name of this file at the shell will result in it being run", > then PATHEXT is the correct answer. If you mean "this thing is > actually inherently executable", then you probably want to check if it > begins MZ, but that's not certain (COM files still seem to be > supported, and they have no header whatsoever). If you mean > "double-clicking this thing will run it", I think there are tools that > allow you to do the registry lookup conveniently to see if something's > associated.
FWIW, I've noticed that afer downloading a .exe under Linux and scp'ing the file to a Windows machine, it wont run when double-clicked until I fire up a Cygwin shell and do a chmod +x <whatever>.exe [I assume there's native Windows point-and-grunt means for doing that as well.] So, in addition to the suffix and associations, there's some sort of file-system meta-data that determines whether a file is "executable" in some contexts. -- Grant Edwards grant.b.edwards Yow! I'm having a at quadrophonic sensation gmail.com of two winos alone in a steel mill! -- https://mail.python.org/mailman/listinfo/python-list