在任意目录中启动 Cygwin?

Alo*_*dal 5 windows 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
Run Code Online (Sandbox Code Playgroud)

Cygwin 窗口打开,我刚刚离开的地方:

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

me@here /cygdrive/c/Users/Me/testdir
Run Code Online (Sandbox Code Playgroud)

如您所见,当我收到 Cygwin 提示时,我已经在testdir,而不是/home/me

(我将使用它的更典型的场景是从 Total Commander 的命令行运行 Cygwin,但我想它应该工作相同。)

如何实现这一目标?

小智 5

我可以为你拼凑一些东西。将其放入路径中的批处理文件中(我称为我的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"
Run Code Online (Sandbox Code Playgroud)