Iniciando o Cygwin no diretório arbitrário?

5

É possível configurar o Cygwin para que, se eu chamar o Cygwin.bat de um caminho arbitrário usando o método de inicialização arbitrário do Windows (cmd.exe, linha de comando do Total Commander), ele irá iniciar o bash preparado nesse diretório?

Por exemplo, se eu executar o cmd.exe e fazer o seguinte (desde que o Cygwin.bat esteja no meu PATH ):

C:\Users\Me>cd testdir

C:\Users\Me\testdir>dir /b
myfile1
myfile2

C:\Users\Me\testdir>Cygwin

A janela do Cygwin é aberta e eu estou exatamente de onde parei:

me@here /cygdrive/c/Users/Me/testdir
$ ls
myfile1*  myfile2*

me@here /cygdrive/c/Users/Me/testdir

Como você pode ver, quando eu obtiver o prompt do Cygwin, eu já estou em testdir , não em /home/me .

(Cenário mais típico em que vou usar isso é executar o Cygwin a partir da linha de comando do Total Commander, mas acho que deve funcionar da mesma forma.)

Como conseguir isso?

    
por Alois Mahdal 17.08.2012 / 19:41

2 respostas

4

Eu consegui hackear algo para você. Coloque isso em um arquivo de lote no seu caminho (chamei o meu cygwin.bat e chamei inserindo 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"
    
por 26.08.2012 / 12:43
1

Esse arquivo mais simples .bat ( .cmd no meu caso) está funcionando bem para mim:

c:\CygWin\bin\bash.exe --login -i -c "export CD='%CD%'; cd \"$CD\"; exec /bin/bash"

Testado em funcionamento:

  • CMD.
  • Comandante total.
  • Sessão SSH remota.
  • Menu Iniciar - > Executar (neste caso, abre em C:\Users\Me ).
por 19.04.2014 / 03:35