在任意目录中启动 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)。

相关内容