This is the mail archive of the
mailing list for the Cygwin project.
Re: cygwin and the rest of the Windows
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: "Ling F. Zhang" <lingfengz at yahoo dot com>
- Cc: cygwin at cygwin dot com
- Date: Sun, 22 Jun 2003 22:22:50 -0400 (EDT)
- Subject: Re: cygwin and the rest of the Windows
- Reply-to: cygwin at cygwin dot com
In your case 1, it looks like you ran that command from bash. It's pretty
obvious why it didn't work - bash needs POSIX paths. You had unquoted
spaces, which bash interpreted as argument separators, and it also
interpreted backslashes as escapes. You should have run that command from
a cmd prompt.
I also warned you that the name of the script will be passed in Win32
form, and you'd need to use cygpath to convert it to POSIX. The file that
worked for me (I actually created one that works this time) was:
c:\cygwin\bin\bash.exe --login -c "/usr/bin/perl `/bin/cygpath -u '%1'`"
You can add similar conversions for %2..%9, but I don't think they're
necessary in your particular case (i.e., a file handler for the .pl
extension). You may not need the "--login" - try running without it, that
will keep you in the same directory. Oh, and the '#!' line would be
ignored in this case, and the dispatch will be done by Windows Explorer
based solely on the .pl extension.
As for case 2, you might have to play similar games, but in the
association mechanism. Something like
c:\cygwin\bin\bash.exe -c "`cygpath -u '%s'`"
(I don't have the exact incantation, you may need to read up on the
Windows Explorer mechanism for this).
Case 3 is actually a subcase of 1 - simply associate the .pl file with
perl.bat, and you should be able to run it (as long as perl.bat is
correct). You might wish to keep the "@echo off" out of the .bat file
while you're debugging it, to know exactly what parameters bash gets.
On Sun, 22 Jun 2003, Ling F. Zhang wrote:
> okay, a summary of what I am doing:
> case 1:
> c:\cygwin\bin\perl.bat reads:
> @echo off
> c:\cygwin\bin\bash --login -c "/usr/bin/perl %1 %2 %3 %4 %5 %6 %7 %8 %9"
> associating the .pl file with
> c:\cygwin\bin\perl.bat %1
> and the perl file begins with:
> one command line, I ran:
> c:\program files\apache group\apache2\cgi-bin\printenv.pl
> and get the error:
> Files\Apache: line 1: C:Program: command not found
> OKAY, this looks like caused by the different b/t
> winFS and POSIX....since Igor said he was successful
> in this mode, can you point out what's the problem?
> case 2:
> associating .pl file with
> c:\cygwin\bin\bash -c %1
> and the file begins with
> I get the same error as case 1...
> case 3:
> the only way I can now run the .pl file from command
> line is:
> c:\path with space\\cygwin\bin\bash -c printenv.pl
> but what I really want is:
> to run .pl file like normal in windows command prompt:
> i.e. c:\path with space\printenv.pl
> WITHOUT using a native windows perl interpretor (like
> if this is not possible, at least I should be able to
> run it as a cgi-script...
> thanx for all your help so far igor...I am just a
> little slow on this right now...
> --Matthew Ling F. Zhang
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
> Problem reports: http://cygwin.com/problems.html
> Documentation: http://cygwin.com/docs.html
> FAQ: http://cygwin.com/faq/
|\ _,,,---,,_ email@example.com
ZZZzz /,`.-'`' -. ;-;;,_ firstname.lastname@example.org
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html