【问题标题】:How to Pass MULTIPLE filenames to a Context Menu Shell Command?如何将多个文件名传递给上下文菜单 Shell 命令?
【发布时间】:2011-06-22 13:33:08
【问题描述】:

将单个文件名传递给上下文菜单 shell 命令很简单:

[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"

但是如果我选择多个文件,program.exe 会为每个这样的选定文件调用。

我想做的是只调用一次program.exe,将当前选择的所有文件名传递给它。

如何做到这一点?

【问题讨论】:

  • 我已成功将项目添加到文件上下文菜单 (HKEY_CLASSES_ROOT\*\shell)。当我右键单击文件时会显示该项目。当我选择多个文件然后右键单击时,它不会显示出来。我该如何解决?

标签: windows shell registry contextmenu windows-shell-extension-menu


【解决方案1】:

您可以为此使用Send To。它支持多个文件。

万一本网站离线:

使用Windows + R 打开shell:sendto 或将其粘贴到您的资源管理器地址栏中。它应该将您重定向到:

C:\Users\<yourusername>\AppData\Roaming\Microsoft\Windows\SendTo

在此文件夹中创建程序的快捷方式,您应该会在 Send to 下的资源管理器右键菜单中看到它

【讨论】:

  • 根据文件的路径,可以发送多少个文件似乎是有限制的。我可以发送 504 个路径为 C:\test\001.txt 的文件。 504 个文件名共 7560 个字符(无空格)、8063 个字符(空格分隔)。发送 505 个文件(7575 个字符 [无空格];8079 [空格分隔])不起作用。
  • 为我节省了很多时间。我用它来比较软件。。谢谢
  • 尝试将文件G:\New [folder] (4)\Untitled-2.txt 传递给Powershell 脚本时,结果变为G:\New [folder] 4 \Untitled-2.txt。似乎无法正确解析括号。有什么解决办法吗?
  • @preachers 尝试用反引号转义括号:G:\New [folder] `(4`)\Untitled-2.txt
【解决方案2】:

您可能想查看this post,因为它表示实际上不可能将多个文件传递给单个实例,您必须依赖某种形式的 IPC(进程间通信)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多