我希望在资源管理器的右键菜单中添加一个命令,使用 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上:
- 使用‘chere’包安装 Cygwin。
- 右键单击并以管理员身份打开 Cygwin。
- 如果您想使用我个人更喜欢的 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