Board logo

标题: [系统相关] 如何用批处理为指定类型的文件添加右键菜单 [打印本页]

作者: 0428_hai    时间: 2011-11-8 22:33     标题: 如何用批处理为指定类型的文件添加右键菜单

需求如下:
为.java文件添加右键菜单,菜单如下图所示
编译该文件(命令为"D:\Program Files\a.bat" "%1")
编译并执行该文件(命令为"D:\Program Files\a.bat" "%1" flag)
这个需求在 文件夹选项>文件类型 选项卡中,可以手工添加,也能达到目的,但是如何用批处理来实现这个效果呢?

作者: 920168    时间: 2011-11-9 10:32

--=-=-==-=-=-==-=前辈-=-=-===
  1. reg add "HKEY_CLASSES_ROOT\.java\shell\编译\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\"" /f
  2. reg add "HKEY_CLASSES_ROOT\.java\shell\编译并执行\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\" flag" /f
复制代码

作者: 0428_hai    时间: 2011-11-10 00:37

运行这段代码后,注册表已经成功插入相应键值,但是右击java文件,依旧没有这两个命令啊。
作者: 920168    时间: 2011-11-10 09:01

本帖最后由 920168 于 2011-11-10 09:06 编辑

杀软阻止了????
你K掉explorer.exe
然后再start explorer.exe
作者: 0428_hai    时间: 2011-11-10 15:16

运行批处理时的确有杀软阻止,但我已放过了啊。倒是没重启explorer,晚上试试看
作者: powerbat    时间: 2011-11-10 17:01

  1. @echo off
  2. for /f "delims=" %%a in ('assoc .java') do set %%a
  3. reg.exe add "hkcr\.%java%\shell\编译\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\"" /f
  4. reg.exe add "hkcr\%.java%\shell\编译并执行\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\" flag" /f
  5. pause
复制代码

作者: CrLf    时间: 2011-11-10 17:05

回复 3# 0428_hai


    刷新一下注册表看看修改后的键值还在不?有时候可能是某些“智能”的软件锁定了注册表项
作者: 0428_hai    时间: 2011-11-10 19:16

刷新注册表,重启explorer依旧无效
作者: powerbat    时间: 2011-11-10 19:44

  1. @echo off
  2. for /f "delims=" %%a in ('assoc .java') do set %%a
  3. if not defined .java (set ".java=javafile" & assoc .java=javafile)
  4. reg.exe add "hkcr\%.java%\shell\编译\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\"" /f
  5. reg.exe add "hkcr\%.java%\shell\编译并执行\command" /ve /d "\"D:\Program Files\a.bat\" \"%%1\" flag" /f
  6. pause
复制代码

作者: 0428_hai    时间: 2011-11-10 21:28

9#兄台的方法貌似是可行的啊。。。。
这是什么原理呢?
.java不可以,而设置与之相关联的键值才可以?
作者: 920168    时间: 2011-11-11 10:55

回复 10# 0428_hai


    关联文件!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2