[Distutils] bdist_wininst: post-installation changes?

Moore, Paul Paul.Moore@atosorigin.com
Tue Apr 30 04:05:03 2002


From: Thomas Heller [mailto:thomas.heller@ion-tof.com]
> Bruce's preamble can be simplyfied to this one:
>
>    @runpython c:\aaa\Python\%0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
>    # start of python code
>    print "Hello" # or whatever
>    # EOF - you don't have to supply the 'endofpython' footer from above.

The simplest possible version I've found is

    @python -x %~f0 %* & goto :eof
    # start of python code
    import sys
    print "Hello", ', '.join(sys.argv[1:])

This works on Windows 2000 CMD.EXE. Probably also on NT and XP, but I don't
have these to test. It's not likely to work on Windows 9x/ME, as the %~f0
and %* constructs aren't supported there. %* can be replaced by %1 %2 %3 %4
%5 %6 %7 %8 %9 as usual, but %~f0 (the full pathname of the current batch
file) isn't in COMMAND.COM to my knowledge...

Annoyingly, JP Software's 4NT doesn't correctly support %~f0, failing to
include the .bat file extension unless it is typed in on the command line.
I've reported this as a bug to JP software.

The advantage of this version is that it *doesn't* need you to hard-code the
full pathname of the BAT file.

An alternative construct is %~dp0MYBATCHFILE.BAT. The %~dp0 construct gives
the name of the directory containing the batch file. Again, this isn't 9x/ME
compatible, to my knowledge. But it does work on all versions of NT/2000 and
also in 4NT, FWIW.

Hope this helps,
Paul.