Board logo

标题: [注册表类] [已解决]批处理怎样在右键加入移动文件和复制文件选项? [打印本页]

作者: 亲临    时间: 2011-7-6 09:59     标题: [已解决]批处理怎样在右键加入移动文件和复制文件选项?

我想求一个批处理代码:怎样在右键中加入移动文件和复制文件两个选项。
我在百度搜了很多,都是让改注册表,很麻烦的。
请大虾们帮助写一个批处理代码。
最好是保存成bat文件后,双击这个bat文件一次右键就添加上移动和复制文件两个选项;
如果想在右键取消这两个选项,再双击运行bat文件一次取消右键的复制和移动选项。

谢谢论坛的高手、大侠们了,辛苦了,熬熬夜,写个批处理代码,有时间有机会的话,我请大侠们吃宵夜!!!
作者: CrLf    时间: 2011-7-6 10:21

看起来应该不难,但是类似这种需要操作注册表的情况,请给出具体键值,因为没有人会把整个注册表背下来,所以碰到改注册表的事我们一样要去股沟、摆渡
作者: 亲临    时间: 2011-7-6 10:36

我在百度搜到的改注册表方法是以下方法,其中估计有注册表键值~~~~

1、运行“注册表编辑器”(RegEdit)。
2、在“注册表编辑器”窗口的左窗格中,依次展开“HKEY_CLASSES_ROOT\AllFilesystem Objects\shellex\ContextMenuHandlers”分支。
3、右键单击“ContextMenuHandlers”,选择“新建→主键”,将新主键命名为“Copy To”。
4、选中“Copy To”主键,在右窗格中,双击“默认”,此时弹出对话框的“数值数据”框中键入“{C2FBB630-2971-11D1-A18C-00C04FD75D13}”。单击“确定”按钮。
5、单击“文件”菜单中的“退出”命令,关闭“注册表编辑器”窗口。

增加“移动到文件夹”命令,方法步骤同上,只是在“ContextMenuHandlers”下,新建一个“Move To”主键,将其值设置为“{C2FBB631- 2971-11D1-A18C-00C04FD75D13}”即可。

现在,右键单击某一文件(夹),在系统弹出的快捷菜单中,出现“复制到文件夹”和“移动到文件夹”两个选项,点击进去试试,此时将弹出一个浏览文件夹的窗口,选择目标文件夹后,点击确定即可实现复制或移动文件的目的。
作者: CrLf    时间: 2011-7-6 11:10

代码是写出来了,但是好像没有看到对应的右键菜单啊...是不是我理解错了
  1. @echo off 2>nul 3>nul
  2. set reg=HKCR\AllFilesystem Objects\shellex\ContextMenuHandlers
  3. reg query "%reg%\Copy To"&&reg query "%reg%\Move To"&&(
  4. title delete
  5. reg delete "%reg%\Copy To" /f
  6. reg delete "%reg%\Move To" /f
  7.        rem 两个键值都存在则删除
  8. )||(
  9. title add
  10. reg add "%reg%\Copy To" /v @ /d "{C2FBB630-2971-11D1-A18C-00C04FD75D13}"
  11. reg add "%reg%\Move To" /v @ /d "{C2FBB631- 2971-11D1-A18C-00C04FD75D13}"
  12.        rem 两个键值中只要有一个不存在,就添加
  13. )
  14. pause
复制代码

作者: slore    时间: 2011-7-6 12:47

看来楼上对注册表不清楚啊。。。
  1. @echo off 2>nul 3>nul
  2. set reg=HKCR\AllFilesystemObjects\shellex\ContextMenuHandlers
  3. reg query "%reg%\Copy To"&&reg query "%reg%\Move To"&&(
  4.         title delete
  5.         reg delete "%reg%\Copy To" /f
  6.         reg delete "%reg%\Move To" /f
  7.         rem 两个键值都存在则删除
  8. )||(
  9.         title add
  10.         reg add "%reg%\Copy To" /ve /d "{C2FBB630-2971-11D1-A18C-00C04FD75D13}"
  11.         reg add "%reg%\Move To" /ve /d "{C2FBB631-2971-11D1-A18C-00C04FD75D13}"
  12.         rem 两个键值中只要有一个不存在,就添加
  13. )
  14. pause
复制代码

作者: lxzzr    时间: 2011-7-6 15:02

5# slore


不理解@echo off 2>nul 3>nul,难道echo 还会出错...
作者: CrLf    时间: 2011-7-6 15:16

6# lxzzr


句柄备份,屏蔽之后所有错误回显
作者: 亲临    时间: 2011-7-6 15:54

我试试啊。谢谢两位高手!!!
作者: 亲临    时间: 2011-7-6 16:02

本帖最后由 亲临 于 2011-7-6 16:12 编辑

我靠,这里就是有高手!!!!这么快就解决问题了
很好很好很好很好~~~~~~~~
我按照五楼的方法试了,非常完美!!!!!
谢谢哦,回头我请你吃饭,你在哪里?我在河南安阳,有时间你过来啊,我请你吃饭,真诚的!!!!
对谢谢四楼也表示衷心感谢,我没有试你的方法,但是谢谢你费心了!!!回头你跟五楼一块儿来河南安阳,我请你们吃豫北名菜!!!!


哦~~~我的系统是XP SP3
作者: 亲临    时间: 2011-7-6 16:14

4# zm900612


谢谢斑竹,我麻烦您了,您费心了!!
作者: 亲临    时间: 2011-7-6 16:29

5# slore


向高手致敬!!!!!!
作者: hbwazxf    时间: 2011-7-6 21:41

这里确实有高手的。。。。。。。




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