我有类似的需求(在当前通过上下文菜单在资源管理器中查看的文件夹中打开一个新的 Cygwin-Tab)并找到以下解决方案:
正如 Maximus 所述,Cygwin-Bash 通常由 C:\cygwin64\Cygwin.bat 打开,其中包括登录过程。我的方法是通过登录更改工作目录。
.bash_profile:
if [ -f "${HOME}/startup.sh" ] ; then
source "${HOME}/startup.sh"
fi
启动.sh
cdc "D:\Downloads\Programming\Selenium\"
#cdc is a custom function, see .bashrc
.bashrc
cdc()
{
# converts a double-quoted windows-path and changes directory to it
p=$(cygpath -u "$1")
cd "$p"
}
因此,登录进度会将您的 bash 路径更改为您在 startup.sh 中设置的路径。您当然可以在 startup.sh 中键入与 Cygwin 兼容的路径,而无需使用 .bashrc 的自定义功能。它仍然非常有用,特别是如果您想使用动态的 startup.sh。
更动态的方法:
在 C:\opt\ConEmu\ConEmu 中创建一个 Cygwin.bat,内容如下:
Cygwin.bat
@echo off
C:
echo cdc %1 > C:\opt\cygwin64\home\%USERNAME%\startup.sh
:: Your ConEmu-Task-definition here
C:\opt\ConEmu\ConEmu64.exe /Single /cmd {Cygwin}
这会写入一个 cdc-command,后跟您在 startup.sh 中提供的路径,并启动 ConEmu-Task Cygwin的一个新实例。任务本身除了在我的配置中启动一个 Cygwin 实例之外什么都不做:
ConEmu 任务 {Cygwin}
"C:\opt\cygwin64\Cygwin.bat"
我通过资源管理器的上下文菜单调用 Cygwin.bat。另一种方法是创建一个指向 Cygwin.bat 的 Windows 快捷方式,并附加您的路径。