我有一个类似的需求(通过上下文菜单在当前资源管理器中查看的文件夹中打开新的Cygwin-Tab),并找到了以下解决方案:
正如Maximus所述,Cygwin-Bash通常是通过C:\ cygwin64 \ Cygwin.bat打开的,其中包括登录过程。我的方法是通过登录更改工作目录。
.bash_profile:
if [ -f "${HOME}/startup.sh" ] ; then
source "${HOME}/startup.sh"
fi
startup.sh
cdc "D:\Downloads\Programming\Selenium\"
#cdc is a custom function, see .bashrc
.bashrc
cdc()
{
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}
这个命令会在你的startup.sh中写入一个cdc命令,后面跟着你提供的路径,并启动一个新的ConEmu-Task Cygwin实例。该任务本身并不做任何事情,只是在我的配置中启动Cygwin的一个实例:
ConEmu Task {Cygwin}
"C:\opt\cygwin64\Cygwin.bat"
我通过资源管理器的上下文菜单调用Cygwin.bat。另一种方法是创建一个Windows快捷方式,指向附加了路径的Cygwin.bat。