¿Es posible configurar Cygwin de modo que si llamo a Cygwin.bat desde una ruta arbitraria usando un método de inicio arbitrario nativo de Windows (cmd.exe, línea de comando de Total Commander), inicie bash preparado en ese directorio?
Por ejemplo, si ejecuto cmd.exe y hago lo siguiente (siempre que Cygwin.bat esté en mi archivo PATH
):
C:\Users\Me>cd testdir
C:\Users\Me\testdir>dir /b
myfile1
myfile2
C:\Users\Me\testdir>Cygwin
Se abre la ventana de Cygwin y estoy justo donde lo dejé:
me@here /cygdrive/c/Users/Me/testdir
$ ls
myfile1* myfile2*
me@here /cygdrive/c/Users/Me/testdir
Como puede ver, cuando recibo el mensaje de Cygwin, ya estoy en testdir
, no en /home/me
.
(El escenario más típico en el que voy a usar esto es ejecutar Cygwin desde la línea de comandos de Total Commander, pero supongo que debería funcionar igual).
¿Cómo lograr esto?
Respuesta1
Pude hackear algo para ti. Coloque esto en un archivo por lotes en su ruta (llamé al mío cygwin.bat
y lo llamé ingresando cygwin.bat
):
@echo off
set pth=%CD:~2,99%
set pth=%pth:\=/%
set drv=%CD:~0,1%
set "fullpath=/cygdrive/%drv%%pth%"
C:\cygwin\bin\bash.exe --login -i -c "cd ""%fullpath%""; exec /bin/bash"
Respuesta2
Estemás simple .bat
El archivo ( .cmd
en mi caso) esfuncionando bienpara mí:
c:\CygWin\bin\bash.exe --login -i -c "export CD='%CD%'; cd \"$CD\"; exec /bin/bash"
Probado trabajando en:
- CMD.
- Comandante total.
- Sesión SSH remota.
- Menú Inicio --> Ejecutar (en este caso se abre en
C:\Users\Me
).