在任意目錄啟動 Cygwin?

在任意目錄啟動 Cygwin?

是否可以設定 Cygwin,以便如果我使用任意 Windows 本機啟動方法(cmd.exe、Total Commander 命令列)從任意路徑呼叫 Cygwin.bat,它將啟動在該目錄中準備的 bash?

例如,如果我執行 cmd.exe 並執行以下操作(前提是 Cygwin.bat 在我的 上PATH):

C:\Users\Me>cd testdir

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

C:\Users\Me\testdir>Cygwin

Cygwin 視窗打開,我就在上次停下的地方:

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

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

正如您所看到的,當我收到 Cygwin 提示時,我已經位於testdir,而不是位於/home/me

(更典型的情況是,我將使用它從 Total Commander 的命令列運行 Cygwin,但我想它應該工作相同。)

如何實現這項目標?

答案1

我可以為你拼湊一些東西。將其放入路徑中的批次檔中(我稱為我的cygwin.bat,並透過輸入來呼叫它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"

答案2

更簡單 .bat文件(.cmd在我的例子中)是工作正常為我:

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

測試工作:

  • 命令。
  • 總司令。
  • 遠端 SSH 會話。
  • 開始功能表 --> 運行(在本例中,它在 處開啟C:\Users\Me)。

相關內容