从上下文菜单中复制路径,编辑,用编辑后的文本替换剪贴板。

很久以前,我添加了一个上下文菜单条目,允许我将所选文件/文件夹的路径复制到剪贴板中。

注册表键值为cmd.exe /c (echo.|set /p="%1") | clip

(顺便说一句:之后我发现,在右键单击时按住Shift键将提供相同的“复制路径”选项,但这对我来说不适用,因为有两个原因。我必须按住Shift键,而我的注册表添加会删除路径中的双引号,这更适合我的需求。而且我无法在注册表中找到Windows版本。)

无论如何,现在我处于这样的情况:我正在编写大量的.lua代码(用于自定义Unified Remote的应用,非常棒)。它要求斜杠向前而不是向后。我希望修改代码以替换剪贴板上的斜杠。我认为在使用Auto Hotkey脚本将文本更改为大写或小写(https://autohotkey.com/board/topic/24431-convert-text-uppercase-lowercase-capitalized-or-inverted/page-3)之后,可能可能存在一些简单的命令行可从注册表中调用。

如果有人能想到一个不同的,有效的方法来做到这一点,我很乐意改变方向。只是似乎这是最简单的方式,例如。

enter image description here

我知道我可以粘贴到文本编辑器中,然后覆盖所有等等,但在多个地址的情况下,这需要更多的时间。

谢谢大家 :)

点赞
用户2892615
用户2892615

感谢@user3419297引导我走上正确的道路。我进行了以下更改并使它工作了:

  1. 在.reg文件中更改了脚本路径为C:\ Scripts \ Copy as Path(Lua).exe%1,否则会出现权限被拒绝的错误。注意,它仍然没有像原始.reg文件那样自动将值添加到命令键,我必须手动添加。
  2. 在.ahk脚本中用/替换了//。否则,它不会替换斜杠。 然后我得到了一个可以粘贴_short_文件名的工作脚本,因此我使用A_LoopFileLongPath更改了脚本,这是一个完整的工作脚本:
#NoEnv
#SingleInstance Ignore
SetBatchLines -1
#NoTrayIcon

FileGetAttrib, a, %1%

Loop %1%, 1
    Longpath = %A_LoopFileLongPath%

clipboard = %Longpath%
StringReplace, clipboard, clipboard, \, /, All

非常有效 :)

2016-02-01 11:29:11