Cygwin in einem beliebigen Verzeichnis starten?

Cygwin in einem beliebigen Verzeichnis starten?

Ist es möglich, Cygwin so einzurichten, dass, wenn ich Cygwin.bat von einem beliebigen Pfad mit einer beliebigen Windows-eigenen Startmethode (cmd.exe, Befehlszeile von Total Commander) aufrufe, die vorbereitete Bash in diesem Verzeichnis gestartet wird?

Wenn ich beispielsweise cmd.exe ausführe und Folgendes mache (vorausgesetzt, Cygwin.bat befindet sich auf meinem PATH):

C:\Users\Me>cd testdir

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

C:\Users\Me\testdir>Cygwin

Das Cygwin-Fenster öffnet sich und ich bin genau dort, wo ich aufgehört habe:

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

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

Wie Sie sehen, befinde ich mich, wenn ich die Cygwin-Eingabeaufforderung erhalte, bereits bei testdirund nicht bei /home/me.

(Ein typischeres Szenario, in dem ich dies verwenden werde, ist das Ausführen von Cygwin über die Befehlszeile von Total Commander, aber ich denke, es sollte genauso funktionieren.)

Wie erreicht man das?

Antwort1

Ich konnte etwas für Sie zusammenhacken. Fügen Sie dies in eine Batchdatei in Ihrem Pfad ein (ich habe meine aufgerufen cygwin.batund sie durch die Eingabe aufgerufen 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"

Antwort2

Daseinfacher .batDatei ( .cmdin meinem Fall) istfunktioniert gutFür mich:

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

Funktioniert getestet an:

  • CMD.
  • Totaler Kommandant.
  • Remote-SSH-Sitzung.
  • Startmenü --> Ausführen (in diesem Fall wird es bei geöffnet C:\Users\Me).

verwandte Informationen