是否可以設定 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
)。