Board logo

标题: [系统增强] cmd+clip实现右键菜单(Context menu)复制单文件/目录路径到剪贴板 for Win 7 [打印本页]

作者: aa77dd@163.com    时间: 2016-10-23 15:17     标题: cmd+clip实现右键菜单(Context menu)复制单文件/目录路径到剪贴板 for Win 7

本帖最后由 aa77dd@163.com 于 2016-10-23 15:32 编辑

Win 7 系统下, 按住 Shift 键, 在文件/目录上右击的菜单中, 有一个

copy as path (中文系统: 复制为路径) 的功能, 此功能支持多个文件/目录对象, 无论路径中有无空格, 所有路径都会被加上双引号

path copy copy 是一个此功能的第三方工具, 有更大的扩展, 不用按住 Shift, 支持多文件/目录, 有许多选项可以自定义, 比如是否加双引号

如果不想安装 path copy copy 之类第三方工具, 也不需要同时复制多文件/目录的路径, 也不想要双引号,

cmd + clip 就能实现, 测试于 中文 Win 7 64 位

将下面批处理代码保存并运行, 安装选 S, 卸载选 D, 安装完成后, 批处理文件不需用到, 右键菜单出来后, 此功能的快捷键是 F

注册表中的功能实现命令是调用 cmd.exe 和 clip.exe 达成

  
  1. Windows Registry Editor Version 5.00 2> nul
  2. ; @echo off & cls & if "%~1"=="" (goto :choose) else goto :processPath
  3. [HKEY_CLASSES_ROOT\*\shell\CopyPathForSingleFile_Folder]
  4. @="copy path for single (&F)ile/Folder"
  5. [HKEY_CLASSES_ROOT\*\shell\CopyPathForSingleFile_Folder\command]
  6. @="cmd.exe /c <nul set /p \"=%V\"|clip"
  7. [HKEY_CLASSES_ROOT\Directory\Shell\CopyPathForSingleFile_Folder]
  8. @="copy path for single (&F)ile/Folder"
  9. [HKEY_CLASSES_ROOT\Directory\Shell\CopyPathForSingleFile_Folder\Command]
  10. @="cmd.exe /c <nul set /p \"=%V\"|clip"
  11. :processPath
  12. ;<nul set /p "=%*"|clip
  13. ;exit
  14. :choose
  15. ;echo;COPY PATH FOR SINGLE FILE/FOLDER
  16. ;echo;          S    SETUP
  17. ;echo;          D    DELETE
  18. ;<nul set /p "=Please choose:"
  19. ;call :GetKey
  20. ;echo;[%key%]
  21. ;if /i "%key%"=="s" goto :SetupMe
  22. ;if /i "%key%"=="d" goto :DeleteMe
  23. ;echo;choose error
  24. ;pause
  25. ;exit
  26. :SetupMe
  27. ;echo;Setup copy path for single file/folder ...
  28. ;regedit /s "%~f0"
  29. ;rem degug mode
  30. ;rem reg add "HKCR\*\shell\CopyPathForSingleFile_Folder\command" /ve /f /d "cmd.exe /k \"%~f0\" %%1"
  31. ;rem reg add "HKCR\*\shell\CopyPathForSingleFile_Folder\command" /ve /f /d "cmd.exe /c <nul set /p \"=%%V\"|clip"
  32. ;rem reg add "HKCR\Directory\Shell\CopyPathForSingleFile_Folder\command" /ve /f /d "cmd.exe /c <nul set /p \"=%%V\"|clip"
  33. ;echo;SETUP COMPLETE, PRESS ANY KEY TO EXIT...
  34. ;>nul pause
  35. ;exit
  36. :DeleteMe
  37. ;reg delete HKCR\*\shell\CopyPathForSingleFile_Folder /f
  38. ;reg delete HKCR\Directory\Shell\CopyPathForSingleFile_Folder /f
  39. ;echo;UNINSTALL COMPLETE, PRESS ANY KEY TO EXIT...
  40. ;>nul pause
  41. ;exit
  42. :GetKey
  43. ;set "key="
  44. ;for /F "usebackq delims=" %%L in (`xcopy /w . 2^>nul`) do (
  45. ;  if not defined key set "key=%%L"
  46. ;)
  47. ;set "key=%key:~-1%"
  48. ;exit /b
复制代码
或者只用其中包含的注册表脚本也可以安装
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\CopyPathForSingleFile_Folder]
  3. @="copy path for single (&F)ile/Folder"
  4. [HKEY_CLASSES_ROOT\*\shell\CopyPathForSingleFile_Folder\command]
  5. @="cmd.exe /c <nul set /p \"=%V\"|clip"
  6. [HKEY_CLASSES_ROOT\Directory\Shell\CopyPathForSingleFile_Folder]
  7. @="copy path for single (&F)ile/Folder"
  8. [HKEY_CLASSES_ROOT\Directory\Shell\CopyPathForSingleFile_Folder\Command]
  9. @="cmd.exe /c <nul set /p \"=%V\"|clip"
复制代码

作者: wskwfkbdn    时间: 2016-10-23 16:44

+1























·
作者: GNU    时间: 2016-10-23 17:03

人生苦短,我选择使用 Total Commander
作者: codegay    时间: 2016-10-23 19:19

如果不能弹出窗口的话,应该会好很多。
作者: Bella    时间: 2016-10-25 22:22

这图床的作者和我说流量根本用不完, 那还客气什么
你这字体典型的没开 平滑字体边缘

作者: aa77dd@163.com    时间: 2016-10-25 23:04

回复 5# Bella

亲分享的这图床, 我可真喜欢, 又好用, 域名也那么厉害, 太棒了,  
平滑字体边缘 这个效果, 我以前一直也不知道是啥样的, 刚刚才好好瞅了一下, 发现桌面上的文字有了阴影, 呵呵, 应该不止这一点儿吧, 哈哈
作者: Bella    时间: 2016-10-25 23:14

回复 6# aa77dd@163.com


    那是图标的标签阴影, 不纠结这个问题了, 哈哈
作者: eech    时间: 2019-8-25 15:57

用了楼主的脚本,就是会有个DOS窗口闪过,楼主能不能改良个VBS版的,这样就没窗口了,感谢楼主的大作
作者: eech    时间: 2021-7-20 00:15

只想问一句,win10能用吗?




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