Dave Korn wrote:
Andrew DeFaria wrote:
Found out a funny thing about Cygwin today. I've known for a while that
forward slashes works as well as backslashes when specifying a path to
execute. So all of the following work from a cmd prompt:
C:> C:\Cygwin\bin\ls
C:> C:\Cygwin/bin\ls
C:> C:/Cygwin/bin/ls
Also the following works:
C:> C:\Cygwin\bin\ls | more
However the following fails:
C:> C:\Cygwin/bin\ls | more
It fails with something like "C:\Cygwin\bin not found" (From memory).
What does this have to do with Cygwin you say?
Nothing. This is cmd.exe's idiosyncratic command-line parsing behaviour.
Agreed.
Try quoting it:
My personal solution was to change "/"'s -> "\"'s in the Perl function
that I wrote to return the Windows oriented path to Cygwin's bin.
C:\Documents and Settings\Administrator>C:\Cygwin/bin\ls | more
'C:\Cygwin' is not recognized as an internal or external command,
operable program or batch file.
C:\Documents and Settings\Administrator>"C:\Cygwin/bin\ls" | more
Application Data
Cookies
Desktop
Favorites
Local Settings
My Documents
NTUSER.DAT
NetHood
PrintHood
Recent
SendTo
Start Menu
Templates
default.pls
ntuser.dat.LOG
ntuser.ini
schedlog.txt
C:\Documents and Settings\Administrator>
For some reason (the presence of the pipe?) cmd.exe parses the forward
slash as an options separator rather than a path component in one case
but not the other. Quoting removes the ambiguity.
Yes, my Cygwin question would be why does it store "/" in the registry
for what is obviously a Windows path?
--
Andrew DeFaria <http://defaria.com>
Five out of four people have trouble with fractions.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple