Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Getopts with NT4 and Win9x shortcuts

by BrowserUk (Patriarch)
on Jul 24, 2002 at 17:18 UTC ( [id://184944]=note: print w/replies, xml ) Need Help??


in reply to Getopts with NT4 and Win9x shortcuts

Probably not very helpful, but one thing I noticed is that in the output on the XP/2000 systems, the subdir C:\cygwin magically appears appended to the post-GetOptions list?

Are you running cygwin on these systems?

Not having a XP/2000 system to hand, I don't know which path through early (batch) code these system take. Ie, do they take the :WinNT path or not?

The different treatment of the parameters (batch) between the 2 paths might have something to do with this?

Ie.

perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9

versus

:WinNT perl -x -S %0 %*

Maybe a read herring, but it might be interesting to try using the long form for NT and see if that makes a difference?

Update Looking into this a little further, I added a line @echo %1 %2 %3 ..., as the third line of your .bat/.pl, you'll find that when you drag/drop onto the shortcut, under NT at least, the script doesn't receive any of the command line parameters at all!

Essentially, the reason is that the filespecs droppped are passed through to the shortcut using DDE, and the command line parameters are essentially ignored. Obviously not very useful and something (on the basis of your evidence) that MS has corrected in NT5 and later.

The bottom line here is that this is neither a Perl (the language) bug nor a perl (AS) implementation error. It is simply a bug (that is never going to be fixed) in NT4/W95.

As such, it therefore falls beyond the scope of interest for this forum.

As for a work-around. When you code the parameters into the shortcut, they are essentially becoming hard-coded defaults to the script. So, the easiest way to do this would be to hardcode them somewhere else.

Possibilities include:

  • Inside the script: Means you will need several varients of the script.
  • Use an environment var: Same problem, multiple scripts as %0 supplies the name of the script NOT the name of the shortcut.
  • Other: Enquire on a WindowsNT forum for a solution. Sorry.

Replies are listed 'Best First'.
Re: Re: Getopts with NT4 and Win9x shortcuts
by mkmcconn (Chaplain) on Jul 24, 2002 at 23:27 UTC

    ...it therefore falls beyond the scope of interest for this forum.

    I would assume that the issue would be of interest to anyone who wants to run perl on NT or 9x Windows systems, BrowserUK.

    These might not be the OS of preference for you or for me, but in my workplace batch files and CGI deliver Perl solutions to non-perl users all day long. This problem highlights a real limitation of Perl (or any other scripting language) on those operating systems. For that reason, I'd humbly suggest that this is a perlrun FAQ, to which, I think, you have provided a good
    answer:
    The bottom line here is that this is neither a Perl (the language) bug nor a perl (AS) implementation error. It is simply a bug (that is never going to be fixed) in NT4/W95.
    mkmcconn

Re: Re: Getopts with NT4 and Win9x shortcuts
by mkmcconn (Chaplain) on Jul 24, 2002 at 17:52 UTC

    Thanks for taking a stab at it, BrowserUK.

    • I removed the "C:\cygwin" typo - sorry to confuse.
    • Changing the batch parameter lines does not change the behavior of the shortcut.
    • Windows 2000 environment variable, %OS%, expands to "Windows_NT".
    • Answer not found, yet.

    mkmcconn
    fiddled with text after post

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://184944]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-04-19 06:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found