在 Windows 资源管理器上右键单击添加 cygwin

在 Windows 资源管理器上右键单击添加 cygwin

我希望在资源管理器的右键菜单中添加一个命令,使用 cygwin 打开当前目录。

对于同样我已成功添加这些注册表:

[HKEY_CURRENT_USER\software\classes\directory\shell\cygwin]
@="c:\\cygwin\\bin\\bash.exe --login -i -c \"cd '%1'; bash\""

[HKEY_CURRENT_USER\software\classes\drive\shell\cygwin]
@="c:\\cygwin\\bin\\bash.exe --login -i -c \"cd '%1'; bash\""

但这仅在某些文件夹或驱动器上添加命令。我想在资源管理器上单击鼠标右键,然后搜索会给我这个注册表进行编辑:

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin]
@="c:\\cygwin\\bin\\bash.exe --login -i -c \"cd '%1'; bash\""

我的问题在于密钥的值,它对 %1 不起作用,但对某些静态值(如 /cygdrive/c)起作用

有人能告诉我将当前目录传递给命令的正确方法吗?另外,请给我参考一些基本和高级页面。

答案1

更好的选择 - 无需编辑注册表 - http://perfect-blog-url.blogspot.com/2013/04/open-cygwin-with-right-click-no.html

在Win 7上:

  1. 使用‘chere’包安装 Cygwin。
  2. 右键单击并以管理员身份打开 Cygwin。
  3. 如果您想使用我个人更喜欢的 Mintty,请输入“chere -i”或“chere -i -t mintty”。

答案2

我认为这就是 chere 包的作用。与其自己调整注册表项,最简单的方法可能是直接安装它。

答案3

在我看来,这实际上比 Cygwin 更好,chere因为它只启动一个实例bash.exe。如果你查看任务管理器,你会注意到chere需要 2 个实例才能bash.exe工作。这不是什么大问题,但没有必要而且很烦人。

'directory', 'directory\background', 'drive' |
% {'cmd /c start /d "%v" bash' | ni -f hklm:\software\classes\$_\shell\bash\command}

来源

答案4

这是@user219318 所发内容的扩展。如果此方法无效,您可以使用此选项。

以“以管理员身份运行”的方式运行 cygwin.bat,然后输入以下命令。您可以将下面的“bash”替换为您最喜欢的 shell,以查看 shell 列表cat /etc/shells

chere -i -s bash

或者如果你想要薄荷味

chere -i -t mintty -s bash

相关内容