中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 22:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]请教:bat制作鼠标右键菜单直接提取文件地址 查看 1,321 回复 14
楼 主 [已结]请教:bat制作鼠标右键菜单直接提取文件地址 发表于 2009-11-06 19:29 ·  中国 北京 朝阳区 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
请教:关于bat制作鼠标右键菜单项直接提取对应文件地址的问题。

工作当中,例如用Word或记事本写一份有关某一个本地文件的帮助说明,经常需要往自己的Word或记事本文件粘贴一些本地文件的路径地址,

例如要粘贴图片文件: c:\windows\直角三角形.jpg
例如要粘贴影音文件: d:\学校常用\球体的运动轨迹.mpg
例如要粘贴可执行文件: e:\工具软件\题库.exe
等等很多各种类型的文件。。。。。。

每次都要先用鼠标在对应文件上点鼠标右键—>属性—>位置,最头疼的是在“文件位置”当中只显示这个文件的上一级路径地址,
例如上面举例中的路径地址只显示:
c:\windows\
d:\学校常用\
e:\工具软件\
。。。

所以,没办法每次都是先复制下来这些文件的上一级路径地址,再把这些文件对应的文件名(直角三角形.jpg、球体的运动

轨迹.mpg、题库.exe。。。。)手工补上去,感觉真的非常麻烦。

本人在这里虚心向各位高手请教,可不可利用bat写成一个鼠标右键菜单添加语句,使我们在所要查看完整路径地址的文件

(各种类型的文件)点击鼠标右键菜单中的一个“查看当前文件完整路径”的菜单项,并且直接以记事本格式(记事本内已

经自动写好对应文件的完整路径)迅速打开的方式呢?


这个问题困扰了我们好久,希望能够得到这里的老师们帮助,在这里先谢谢各位了。

[ Last edited by qianxu on 2009-11-8 at 04:48 ]
2 发表于 2009-11-06 22:30 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Total Commander 里面有个快捷按钮实现此功能,个人认为非常方便。
3 发表于 2009-11-07 00:48 ·  中国 北京 朝阳区 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
Originally posted by HAT at 2009-11-6 22:30:
Total Commander 里面有个快捷按钮实现此功能,个人认为非常方便。


如果借助“HAT老师”所说的第三方软件,那么操作步骤又会多了几步,倒不如用鼠标右键菜单“一击显示路径”来得快些。
4 发表于 2009-11-07 03:16 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

reg add HKCR\*\shell\CopyPath\Command /ve /d "mshta vbscript:clipboarddata.setdata("""text""","""%1""")(close)"
49206C6F766520796F752067757973 54656C3A3133383238343036373837
5 发表于 2009-11-07 10:40 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
在我的日常工作、学习中,已经用 Total Commander 代替系统自带的资源管理器了。我也经常需要复制文件的完整路径:
1、选中某文件
2、点击那个快捷图标

我个人比较不喜欢点右键,可能是 Total Commander 用的时间比较长的缘故:)
6 发表于 2009-11-07 12:41 ·  中国 北京 中电华通通信有限公司
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
Originally posted by everest79 at 2009-11-7 03:16 AM:

reg add HKCR\*\shell\CopyPath\Command /ve /d "mshta vbscript:clipboarddata.setdata("""text""","""%1""")(close)"

我的xp3,并没有复制路径到剪贴板,什么原因?
7 发表于 2009-11-07 13:24 ·  中国 北京 朝阳区 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
Originally posted by everest79 at 2009-11-7 03:16:

reg add HKCR\*\shell\CopyPath\Command /ve /d "mshta vbscript:clipboarddata.setdata("""text""","""%1""")(close)"


按照“everest79老师”的方法试过了,鼠标右键菜单中有对应菜单显示项,可是点击“CopyPath”菜单项,在记事本或Word文档中“粘贴”的时候,却是什么内容也没有,莫非“对应文件的完整路径”复制到剪切板功能无效?

还请老师在百忙之中指点,谢谢。
8 发表于 2009-11-07 13:28 ·  中国 北京 朝阳区 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
Originally posted by HAT at 2009-11-7 10:40:
在我的日常工作、学习中,已经用 Total Commander 代替系统自带的资源管理器了。我也经常需要复制文件的完整路径:
1、选中某文件
2、点击那个快捷 ...


谢谢“HAT老师”,只是有些时候还要给没安装Total Commander 的同志们做演示,所以没办法,实际需要,只能寻求个bat右键菜单来提取对应文件的完整路径了。
9 Re 7楼 发表于 2009-11-07 17:36 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
测试环境:WinXP SP3 中文企业版
测试结果:成功
10 发表于 2009-11-07 20:29 ·  中国 北京 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
呵呵,至少在我现在使用的XP系统环境下,上面的代码是没有任何效果。

盼望能在windows不同版本的环境下有一个都能通过的版本。

希望老师们百忙之中帮忙,谢谢

[ Last edited by qianxu on 2009-11-7 at 20:30 ]
11 发表于 2009-11-07 21:00 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
在“开始”——“运行”里输入就可以了,如果存成批处理的话应该把[%1]改成[%%1]
12 发表于 2009-11-07 21:17 ·  中国 北京 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
Originally posted by jmz573515 at 2009-11-7 21:00:
在“开始”——“运行”里输入就可以了,如果存成批处理的话应该把改成


非常感谢“jmz573515老师”的指点,问题终于解决了。


共同交流、共同进步。
13 发表于 2009-11-08 18:17 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
下面是一个将剪贴板的内容写入文件的例子,你先自己尝试一下,如果有问题再讨论。
@echo off
call :GetClpText msg
echo %msg%
pause
goto :eof

:GetClpText
mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").CreateTextFile(""t"").Write ClipBoardData.GetData(""Text""):Close")
set /p %1=<t
del t
goto :eof
14 发表于 2009-11-08 19:57 ·  中国 北京 东城区 联通
新手上路
积分 17
发帖 17
注册 2008-11-23 10:42
17年会员
UID 131820
性别 男
状态 离线
Originally posted by HAT at 2009-11-8 18:17:
下面是一个将剪贴板的内容写入文件的例子,你先自己尝试一下,如果有问题再讨论。
@echo off
call :GetClpText msg
echo %msg%
pause
goto :eof

:GetClpTex ...


报告“HAT老师”我这里测试没有通过 脚本错误提示:“没有权限”
15 哇,好用! 发表于 2009-12-12 21:26 ·  中国 广西 柳州 柳北区 电信
新手上路
积分 6
发帖 6
注册 2009-09-20 15:20
16年会员
UID 152348
性别 男
来自 Guangxi,China
状态 离线
可惜现在才发现这么好的东东,之前我一直在用英文插件来辅助才能实现这功能。。。XP3系统实验,成功!!!
C:\Documents and Settings\Administrator\桌面\lei\bat增加鼠标右键菜单直接提取文件保存地址.txt
多谢啦!!!!!
论坛跳转: