我要疯了,试图实现这一目标。我在 Stack Overflow 上阅读了很多问题,但没有奏效。我正在尝试在 console2 上打开一个选项卡,该选项卡在作为参数传递给它的路径上打开 Cygwin。
对于 cmd.exe,非常简单:
cmd.exe %1
对于 Cygwin,这看起来真的很难:
bash --login -i -c 'cd `cygpath \'D:\Program Files\'`;exec bash'
这里的问题是,没有空格的路径效果很好,有空格,它不起作用。另外,我不知道如何将参数传递给它,可能是 $1 或 %1?
编辑1:
我快到了,我创建了这个应该直接运行而不是 bash.exe 的批处理文件:
@echo off
set CHERE_INVOKES=%CD%
set TORUN="D:\Program Files\Cygwin\bin\bash.exe" --login -i -c 'cd "%CHERE_INVOKES%"; exec bash'
echo %TORUN%
call %TORUN%
PAUSE
这适用于除 C: (和 D:) 之外的所有路径,原因是什么?Windows 是愚蠢的,它没有一个名为 C: 的路径,而是一个名为 C: 的路径!!!所以,虽然所有路径都没有反斜杠结束,但第一条路径以它结束,让我发疯!