This is the mail archive of the
mailing list for the Cygwin project.
Re: How does one find "cygdrive path" in a Win ".bat" file
- From: Linda Walsh <cygwin at tlinx dot org>
- To: cygwin at cygwin dot com
- Date: Mon, 09 Feb 2009 17:37:22 -0800
- Subject: Re: How does one find "cygdrive path" in a Win ".bat" file
- References: <4990B031.email@example.com> <4990B128.firstname.lastname@example.org> <4990CB8D.email@example.com> <4990D05A.firstname.lastname@example.org>
Larry Hall (Cygwin) wrote:
Linda Walsh wrote:
Larry Hall (Cygwin X) wrote:
Linda Walsh wrote:
The startxwin.sh script works, but startxwin.bat does not work if
your Cygwin installation isn't in the default location.
You could use "mount -p" (presuming your cygwin\bin is in your
windows path, as mine is).
If not, need to look in the registry:
No, you don't need to look in the registry. There's nothing there that
'mount' won't tell you. Forget about the registry. You'll be better
off, especially when Cygwin 1.7 is released.
I'm curious -- how does mount find or 'know' the cygdrive path
if it doesn't come from the registry.
How it finds it is an implementation detail. There's no need to know
how it does what it does if it does what you want. ;-) And, like I said,
the registry won't be used for 1.7 so anyone that uses this as a basis
of anything will find it "broken" once 1.7 is released.
For that matter, how would a windows .bat file find the
'mount.exe' binary if the .bat file doesn't know 'cygdrive path'?
That's a different issue.
Then answer the question. First you avoid the answer by saying
it is an implementation detail.
Then you say I'm implying a paradox that doesn't exist.
I didn't write the windows .BAT file "startXWin.bat".
If it is so easy to do, then why did you point me
at a broken solution in my earlier post?
You (Larry Hall (Cygwin)) wrote:
... BUT allow no keyboard input.
Did you miss this FAQ?
The FAQ first answer is:
"Launch the X server via the shortcut under "Cygwin-X"
on the start menu."
Trouble is -- that script is broken.
Why is it broken? It's not an X problem. It's a more general
problem of how does a ".bat" script in Windows find what the
"Cygdrive prefix" is, so it can call "/bin/mount" to find the
"Cygdrive prefix" it was looking for in the first place?
However you imply a paradox that doesn't exist.
Looks paradoxical to me.
Whether one knows the 'cygdrive path' or not will not make it
easier to find 'mount.exe'. 'mount.exe' is always in '/bin'.
'/bin' is not a valid windows path. You can't use that
as a path in a .BAT file and expect it to resolve correctly.
the issue of finding '/bin', there may be times when it is necessary
to script this, though I would say this is not one of those cases.
I don't understand. Why not? You told me to start a Cygwin
program from the startmenu shortcut that was provided for it. The shortcut
points to a windows .bat file that has \cygwin hard-coded in it. It doesn't
find the correct path.
For those cases, searching the file-system or spelunking in the
registry are possible avenues, each with their own pluses and minuses.
In this case, just looking at 'cygwin.bat' will provide the answer
It certainly doesn't on my machine. Maybe it's changed and I don't
have an update, but my cygwin.bat file says:
bash --login -i
Because cygwin.bat was installed by cygwin's setup.exe,
setup can fill in the value for "cygwin prefix" -- but nothing in
the above script tells me how a normal windows ".bat" file, independent
of setup.exe, would get that information.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html