平时习惯用一些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. HTML5新增web存储方式

    客户端存储数据的两个对象为: 两个对象在使用方式没有任何区别,唯一的不同点蚀储存数据 的有效时间 ①localStorage - 没有时间限制的数据存储 除非手动删除,否则数据将一直保存在本地文件: ...

  2. 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day

    团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

  3. 201521123051 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 使用工具:百度脑图 1.2 使用常规方法总结其他上课内容.(多态) 多态的定义:父类的引用指向子类的对象. 父类的引用:一是指父类变 ...

  4. 201521123010 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  5. 201521123072《java程序设计》第九周总结

    201521123072<java程序设计>第九周总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截 ...

  6. 201521123098 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 1. TCP的特征: ①可靠:具有失败重传的功能: ②开销大:需要建立通路以维持通信: ③控制能力较强:有 ...

  7. 201521123004 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 协议.IP.域名.端口号 协议:网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则 ...

  8. c# 浮点数计算问题

    给大家看个计算题,看看大家的算术能力. 0.1 +0.1 +0.1 - 0.3 等于几? 大家可能会说这么简单的问题,是不是看不起我?肯定等于0啊. 如果大家直接算的是没有问题的,但是如果用计算机呢? ...

  9. ambari

    http://blog.csdn.net/ggz631047367/article/details/50491616 https://cwiki.apache.org/confluence/displ ...

  10. nodejs 初次链接 mongodb 的详细细节

    时间  2016-06-2613:05:16 在前端的学习也有一段时间了,学习了html,css,javascript,jqery,ajax,php,mysql,学习了这些,了解了一些皮毛,也没有什么 ...