DOS or not? [was Re: How to tell Script to use pythonw.exe ?]

Chris Angelico rosuav at gmail.com
Wed Jul 3 10:00:04 EDT 2013


On Wed, Jul 3, 2013 at 10:50 PM, Tim Chase
<python.list at tim.thechases.com> wrote:
> On 2013-07-03 09:51, Tim Golden wrote:
>> We can certainly agree on this. I can't count the number of emails
>> I've deleted as too hot-headed in response to dismissive comments
>> about Windows as a platform. Some of them, at least, appear to be
>> from people who last actually used Windows back in the 9x days when
>> the command window was very limited indeed.
>
> I guess one of my biggest frustrations with the cmd.exe (and
> command.com) interpreters is that argument processing is left to the
> application, so each application may do it slightly differently:
>
>   C:\temp\> find weather *.py
>   FIND: Parameter format not correct
>   C:\temp\> find "weather" *.py
>   ---------- WFD.PY
>   weather = Weather(lat, lon)
>   C:\temp\> findstr weather *.py
>   wfd.py: weather = Weather(lat, lon)
>   C:\temp\> findstr "weather" *.py
>   wfd.py: weather = Weather(lat, lon)
>
> And more maddeningly:
>
>   C:\temp\> start file.txt
>   ... opens the file correctly in Notepad
>   C:\temp\> start "file with space.txt"
>   ... opens a new dos box with the name "file with space.txt" rather
>       than opening the file
>   C:\temp\> start "" "file with space.txt"
>   ... opens the file correctly in Notepad
>
> It's the little inconsistencies like this that wear daily on me.  That
> and the lack of built-in utilities, so I'm regularly adding GNU tools
> on new boxes.

The issue you have there is mainly that the quotes are serving double
purpose. Yes, they delimit and thus can be used to surround a file
name with spaces in it, but they're also significant to a couple of
apps (FIND uses them to indicate the search string, START looks for a
quoted argument to use as the title). I'm not entirely sure how it's
done under the covers; C code looking at argc/argv sees quoted
arguments without their quotes, exactly as I would expect on Unix, and
yet the convention is to notice the quotes.

The issue with START is 100% understandable and 100% annoying.

ChrisA



More information about the Python-list mailing list