How does one find "cygdrive path" in a Win ".bat" file

Linda Walsh cygwin@tlinx.org
Tue Feb 10 01:37:00 GMT 2009


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:
>>>> "\HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts 
>>>> v2\cygdrive prefix"
>>>
>>> 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?
> 
> <http://x.cygwin.com/docs/faq/cygwin-x-faq.html#q-i-cant-type-anything>

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.


> As for
> 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
> needed.
---
	It certainly doesn't on my machine.  Maybe it's changed and I don't
have an update, but my cygwin.bat file says:
-------------------
     @echo off
     C:
     chdir C:\\bin
     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
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list