返回列表 发帖

[注册表类] 求助:批处理reg右键菜单实现:获取所选中的一个或多个文件路径

本帖最后由 lforl 于 2024-11-20 20:19 编辑

写一个reg右键菜单实现:

在资源管理器中,选择一个或者多个文件的时候,获取这些文件的路径(含文件名和后缀名)。

这是Windows内置的shift右键的,提升为不用按shift的方法。遗憾是带有引号。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Allfilesystemobjects\shell\windows.copyaspath]
"CanonicalName"="{707C7BC6-685A-4A4D-A275-3966A5A3EFAA}"
"CommandStateHandler"="{3B1599F9-E00A-4BBF-AD3E-B3F99FA87779}"
"CommandStateSync"=""
"Description"="@shell32.dll,-30336"
"Icon"="imageres.dll,-5302"
"InvokeCommandOnSelection"=dword:00000001
"MUIVerb"="@shell32.dll,-30329"
"VerbHandler"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
"VerbName"="copyaspath"
;====这个其实就是从win10的自带右键(按shift点右键)里面提取的方法
;HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\CopyAsPathMenu
;====不适合win7。复制出的结果带引号COPY
另外,外面比较常见的是一个vbs写的注册表右键。选择一个文件还行,当选择多个文件的时候运行就报错。

期待大佬路过,指点解决一下这个经典需求(一键复制一个或者多个文件的路径)。多谢!

暂时还没没有比较完美的方案...

回复 2# aloha20200628


   shift键内置这种玩法,我玩过,复制出来的都带引号的,不太适合。谢谢哈....

TOP

本帖最后由 lforl 于 2024-10-23 21:35 编辑

谢谢楼上热心回复。
关于处理多个选中的文件,获取他们路径文件名,@77七 大佬帮过我,实现的比较完美。
比如这贴:

不过我还没学会如何把for循环里得到的变量,累加起来,最后传给剪贴板。
期待大佬路过出手指点...

TOP

回复 7# aloha20200628

谢谢大佬,.js 方案的确也是个不错的办法。发送到js之前的确没想过。

不过,我感觉原生cmd对这个问题应该有解,搜索过全网,感觉多数方案都停留在shift右键带引号那个方案。
纯粹一个reg右键解决问题,简洁。
我再研究研究...

TOP

本帖最后由 lforl 于 2024-11-19 22:57 编辑

感谢@aloha20200628
那个简洁的bat放入sendto的确是比较优秀的解!

对楼上诸位大佬一并致谢,@buyiyang、@ppll2030、@Five66

TOP

@aloha20200628
大大有空看下,似乎对于文件名内含半角括号和字母的,例如:xxx(ocr).pdf
bat就会失灵。
有兼容的办法吗?

TOP

回复 14# aloha20200628

收到,我准备最终采用:win10的自带右键(按shift点右键)里面提取含引号路径的方法(支持多条,15以内,日常足矣)。
然后引号和路径另行处理替换掉,留下文件名列表。
谢谢大大!有您指点,学到了很多!

TOP

返回列表