Windows 如何将多个文件名传递给上下文菜单Shell命令?

Windows 如何将多个文件名传递给上下文菜单Shell命令?,windows,shell,registry,contextmenu,windows-shell-extension-menu,Windows,Shell,Registry,Contextmenu,Windows Shell Extension Menu,将单个文件名传递给上下文菜单shell命令很简单: [HKEY_CLASSES_ROOT\*\shell\MyProgram\Command] @="program.exe %1" 但如果我选择多个文件,则会为每个这样选择的文件调用program.exe 我想做的是只调用一次program.exe,将当前选择的所有文件名传递给它 如何做到这一点?您可能想看看,因为它说,将多个文件传递到单个实例实际上是不可能的,您必须依赖某种形式的IPC(进程间通信)。您可以使用它。它支持多个文件 如果此网站脱

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

[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"
但如果我选择多个文件,则会为每个这样选择的文件调用
program.exe

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

如何做到这一点?

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

您可以使用它。它支持多个文件

如果此网站脱机:

Windows+R
打开
shell:sendto
,或将其粘贴到浏览器地址栏中。它应该将您重定向到:

C:\Users\\AppData\Roaming\Microsoft\Windows\SendTo


在该文件夹中创建程序的快捷方式,您应该可以在浏览器的右键菜单中的
发送到

下看到它。我已成功地将一个项目添加到文件上下文菜单(
HKEY\U CLASSES\U ROOT\*\shell
)。当我右键单击某个文件时,该项目显示。当我选择多个文件然后右键单击时,它不会显示。我该如何解决这个问题?根据文件的路径,似乎可以发送的文件数量是有限制的。我可以发送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
。似乎无法正确解析括号。有解决办法吗?