给 windows 右键菜单添加命令行,HTTP Server 以及 Cygwin 启动命令

本文介绍如何通过修改注册表,在Windows资源管理器中添加启动HTTP Server、打开命令行及启动Cygwin的上下文菜单选项,实现快速部署简易HTTP服务及调用Cygwin环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先列一下.reg 文件内容:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\启动HTTP Server]

[HKEY_CLASSES_ROOT\Directory\shell\启动HTTP Server\command]
@="cmd.exe /k cd %1 & python -m SimpleHTTPServer"

[HKEY_CLASSES_ROOT\Directory\shell\打开命令行]

[HKEY_CLASSES_ROOT\Directory\shell\打开命令行\command]
@="cmd.exe /k cd %1"

[HKEY_CLASSES_ROOT\Directory\shell\启动 Cygwin\]

[HKEY_CLASSES_ROOT\Directory\shell\启动 Cygwin\command]
@="cmd.exe /k "cd %1 && cd> D:\cygwin\dir.tmp && D:\cygwin\cygwin.bat"

其中 D:\cygwin 是我的 Cygwin 安装目录。

原理很简单,就是启动一个命令行然后运行一下自定义命令。因为 HTTP Server 使用的是 python 的临时 HTTP 服务命令,所以依赖于 python。

解释一下最后一条命令:

cmd.exe /k "cd %1 && cd> D:\cygwin\dir.tmp && D:\cygwin\cygwin.bat

其中的 cd> D:\cygwin\dir.tmp 是把当前路径写到硬盘的一个临时文件里。我在网上找了几个 cmd 和 Cygwin 共享当前目录的解决方案,这个最好懂,虽然不太优雅。

还没完,还要在 D:\cygwin\etc\bash.bashrc 文件里增加以下内容:

if [ -f /dir.tmp ]
  then dir=$((sed 's/\\/\//g' /dir.tmp|sed 's/\ /?/g')|sed 's/://g')
  cd /cygdrive/$dir
  rm /dir.tmp
fi

因为 Cygwin 访问 Windows 目录使用的是一个虚拟路径,所以假设你要访问的是 C:\foobar,你要先转换为 /cygdrive/c/foobar,再调用 cd 命令。


转载于:https://my.oschina.net/legendlee/blog/465039

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值