Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Launcher, and ftype Python.File

49 views
Skip to first unread message

Glenn Linderman

unread,
Nov 18, 2015, 3:13:17 AM11/18/15
to
Setting up a new machine with Windows 10, I installed Python 3.5.0 and
the Launcher. Invoking python files from batch files as

foo.py -a -bunch -of -parameters

Didn't seem to do _anything_ so I checked:

d:\>assoc .py
.py=Python.File

d:\>ftype Python.File
Python.File="C:\Windows\py.exe" "%L" %*

I'm surprised by the "%L" where usually programs have "%1". Is this a
new Windows feature I don't know about yet, or is it a bug in the
installer for the Launcher?

ftype /? does not enlighten me that there is a new %L feature available.


I did upgrade to Threshold 2 after installing Python and before using
it, if that matters, just due to the timing of setting up the new machine.

Turns out I had an empty file named foo.py and that is why it didn't do
anything, but now I'm just really puzzled about what "%L" means...
Google doesn't support searching for "%L" very well.

Terry Reedy

unread,
Nov 18, 2015, 5:53:45 AM11/18/15
to
On 11/18/2015 3:12 AM, Glenn Linderman wrote:
> Setting up a new machine with Windows 10, I installed Python 3.5.0 and
> the Launcher. Invoking python files from batch files as
>
> foo.py -a -bunch -of -parameters
>
> Didn't seem to do _anything_ so I checked:
>
> d:\>assoc .py
> .py=Python.File
>
> d:\>ftype Python.File
> Python.File="C:\Windows\py.exe" "%L" %*

Verified on my Win 10

> I'm surprised by the "%L" where usually programs have "%1". Is this a
> new Windows feature I don't know about yet, or is it a bug in the
> installer for the Launcher?

It puzzles me tool. However, it works.

> ftype /? does not enlighten me that there is a new %L feature available.

I accidentally entered just 'ftype' and since WMP11 listings are at the
end, noticed that they also use %L. I also see that WMP11 listings are
the only ones (other than Python.*) using %L. Not even other MS
listings, as for IE, do.

After entering 'ftype /?' as intended, I see that %0 and %1 are synonyms
for the first word == the file being launched. I also did not find
mention of %L. My guess is 'L' is a new term for 'Launched file'.
Steve Dower, who wrote the 3.5 intaller, would know about it as a MS
employer.

Steve, can you verify the above, and maybe tell whoever to update the
ftype help? Is there any difference (other than our puzzlement) between
using %1 and %L?

> Turns out I had an empty file named foo.py and that is why it didn't do
> anything, but now I'm just really puzzled about what "%L" means...
> Google doesn't support searching for "%L" very well.


--
Terry Jan Reedy

Christian Ullrich

unread,
Nov 18, 2015, 9:46:18 AM11/18/15
to
* Terry Reedy wrote:

> On 11/18/2015 3:12 AM, Glenn Linderman wrote:

>> d:\>ftype Python.File
>> Python.File="C:\Windows\py.exe" "%L" %*
>
> Verified on my Win 10
>
>> I'm surprised by the "%L" where usually programs have "%1". Is this a
>> new Windows feature I don't know about yet, or is it a bug in the
>> installer for the Launcher?
>
> It puzzles me tool. However, it works.

Apparently %L is always the long file name, and %1 is the short name
unless the shell can prove that the executable can handle long names.

>> Google doesn't support searching for "%L" very well.

https://www.google.com/search?q=ftype+%22%25L%22#q=ftype+%22%25L%22+-mks

--
Christian


eryksun

unread,
Nov 18, 2015, 1:04:49 PM11/18/15
to
On Wed, Nov 18, 2015 at 8:45 AM, Christian Ullrich <ch...@chrullrich.net> wrote:
> Apparently %L is always the long file name, and %1 is the short name unless
> the shell can prove that the executable can handle long names.

Specifically old Win16 programs (identified by the file header) aren't
aware of long filenames. In the case of these old programs, the shell
calls GetShortPathName when replacing %0 or %1, but not when replacing
%L.

For Win32 programs %0, %1, and %L are all the same:

C:\Temp>ftype Python.File
Python.File="C:\Windows\py.exe" "%0" "%1" "%L" %*

C:\Temp>longfilename.py
sys.argv:
C:\Temp\longfilename.py
C:\Temp\longfilename.py
C:\Temp\longfilename.py

Short Pathname:
C:\Temp\LONGFI~1.PY
0 new messages