平时习惯用一些linux命令来完成工作,在Windows上有cygwin和gitbash两个选择。这两个我都装了。

相对来说cygwin支持的功能更多一些,但是它没有默认绑定到右键菜单。为此,我想到用万能的注册表解决这个事情。网上搜索了一下,把我眼中best answer贴出来供大家分享。

注把下面代码保存成cygwin.bat 放到cygwin安装目录的bin目录里面,然后用管理员权限启动cmd去运行该脚本 如 cygwin.bat /HELP

@echo off

rem current filename
echo "%~f0"
rem current filedir
echo "%~dp0"
echo "Usually it is runned with Administrator power" rem It is assumed that this script is located under the Cygwin binaries
rem directory. Usually it is "c:\cygwin\bin". Put this file as the
rem "cyghere.bat" under this directory and perform the command
rem "cyghere.bat /install" to install the script as a part of Windowds
rem Explorer. Once installed it will be available as "Cygwin Here" item in
rem the context menu of Windows Explorer. if /i "%~1" == "/HELP" (
echo:Cygwin Here
echo:
echo:Usage:
echo:%~n0 [/HELP ^| /INSTALL ^| /UNINSTALL ^| /LIST ^| "folder"]
goto :EOF
) rem Add/Remove/List the registry keys
rem HKEY_CLASSES_ROOT\Directory\shell\Cygwin Here
rem HKEY_CLASSES_ROOT\Directory\Background\shell\Cygwin Here
rem HKEY_CLASSES_ROOT\Drive\shell\Cygwin Here if /i "%~1" == "/INSTALL" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
echo "longwind"
reg add "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here" /v "Icon" /t "REG_SZ" /d "%~dp0\..\Cygwin.ico" /f
reg add "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here\command" /ve /d "\"%~f0\" \"%%V\"" /f
)
goto :EOF
) if /i "%~1" == "/UNINSTALL" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
reg delete "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here" /f
)
goto :EOF
) if /i "%~1" == "/LIST" (
for %%p in ( "Drive" "Directory" "Directory\Background" ) do (
reg query "HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here" /s
)
goto :EOF
) rem Proceed to the specified folder
if not "%~1" == "" pushd "%~1" || goto :EOF rem Run Cygwin in the specified directory
start "Cygwin Here" "%~dp0mintty.exe" -i /Cygwin-Terminal.ico -h start "%~dp0bash.exe" -l -c "cd '%cd%' ; exec bash"
popd

代码主体是照抄前人的,如侵删~

我加了图标项,以及一些注释。

顺便说一句,windows上的bat脚本相当于linux上的shell脚本,rem相当于#,goto :EOF 相当于exit。

其中reg add,reg query都是reg命令,我修改上述脚本时参考园封记忆

感谢互联网以及无私分享知识的前人们,我等也要继承这份精神!

参考:

1. 好库文摘 http://doc.okbase.net/jevyzhu/archive/82840.html

2. 博客园 http://www.cnblogs.com/fanyf/p/4221488.html

Cygwin-添加到右键菜单脚本--一键安装、卸载的更多相关文章

  1. UltraEdit程序设置添加到右键菜单

    http://hellofs.blog.51cto.com/6109153/1180681 以前安装UltraEdit软件,在安装过程中选择将其添加到右键菜单,安装完成后就可以正常显示在右键菜单,这样 ...

  2. (整理)Sublime Text 3 安装、破解、安装Package Control、汉化、添加到右键菜单、代码格式化、禁止更新

    Sublime Text 3好用,但是每次安装到最后用着顺手,得在网上找半天安装.破解.安装Package Control.汉化.添加到右键菜单.代码格式化等等的教程,今天有空给自己整理一下吧. 一. ...

  3. Beyond Compare3 添加到右键菜单

    Beyond Compare 是个优秀的工具,我们经常用于对比文件和文件夹,右键点点就可以调用对比,着实很方便.但从3.2版本之前,我们可以从设置中将bc关联到文件夹和文件右键,但之后的版本已经找不到 ...

  4. Beyond Compare3 注册密钥和添加到右键菜单

    本人使用的是 Beyond Compare 3 ,版本 3.3.8(build 16340),密钥应收Beyond Compare 3都能够使用. 如想查看密钥,请参考本文末尾的隐藏内容 Beyond ...

  5. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  6. sublime使用技巧之添加到右键菜单、集成VI

    熟悉开发工具,减少多余的操作流程有助于提高开发效率,而Sublime Text 2是sublime产品的经典版本,因此本文基于Sublime Text 2讲解sublime的使用技巧. VI的主要作用 ...

  7. 添加系统右键菜单项 管理员取得所有权(W)(带盾牌)

    @color 0A @title 添加系统右键菜单项 管理员取得所有权(^&W)(带盾牌) by wjshan0808 @echo off echo * >nul reg add HKC ...

  8. Centos 6.4上面用Shell脚本一键安装vsftpd

    Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...

  9. 如何在C#添加鼠标右键菜单

    C#添加鼠标右键方法步骤: 1 选中要添加右键功能的Form或者控件,打开控件的设计页面. 2 从工具箱中找到ContextMenuStrip控件,将这个控件拖曳到Form或者控件的设计页面上.这时系 ...

随机推荐

  1. 配置VNC SERVER 远程访问

    1.安装软件包 # yum install tigervnc-server -y 2. 配置VNC用户 # vim /etc/sysconfig/vncservers VNCSERVERS=" ...

  2. HTML canvas绘制椭圆

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 201521123027 <java程序设计>第十二周作业总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 将Student对象(属性:int id, String name,int age,double ...

  4. Eclipse rap 富客户端开发总结(3):rcp/rap目前界面上的一些差异

    1. Label和Button按钮的显示的差异 当Label 和 Button显示的文字过长显示不开的时候,rcp.rap的处理方式就不一样了,rap显示不开会自己截取掉后面的文字,rcp会在文字的中 ...

  5. C# 泛型集合

    原文出处我的wiki,转载请说明出处 考虑到泛型在集合类型中的广泛应用,这里一起讨论. 1. 泛型 1.1 泛型的定义与约束 创建泛型方法.委托.接口或类时,需要在名称后增加尖括号及其中的泛型参数,泛 ...

  6. Redis总结(六)Redis配置文件全解

    前面已经写了一些关于redis 的介绍,redis 的基本功能和用法,基本上都说了,有问题的可以去看看 http://www.cnblogs.com/zhangweizhong/category/77 ...

  7. Spring第七篇【Spring的JDBC模块】

    前言 上一篇Spring博文主要讲解了如何使用Spring来实现AOP编程,本博文主要讲解Spring的对JDBC的支持- 对于JDBC而言,我们肯定不会陌生,我们在初学的时候肯定写过非常非常多的JD ...

  8. JVM菜鸟进阶高手之路四

    转载请注明原创出处,谢谢! 由于很多的jvm分析最好是基于gc日志的,所以添加参数如下即可: -verbose:gc -XX:+HeapDumpOnOutOfMemoryError -XX:+Prin ...

  9. 渗透相关website

    开源安全测试方法论:http://www.isecom.org/research/osstmm.html 信息系统安全评估框架:www.oissg.org/issaf 开放式web应用程序安全项目(O ...

  10. 记一次 node.js 的populate用法

    最近在学习node.js做一个简单的博客的网站,用的express框架和mongodb的数据库.之前没有接触过这个数据库,所有在一开始写的时候遇到了一些问题,如何初始化model类型,又如何实现简单的 ...