对 Windows 资源管理器中的多个选定文件执行上下文菜单操作

Bas*_*asj 6 windows windows-7 windows-explorer context-menu regedit

我想为多个选定的文件创建一个 Windows 资源管理器上下文菜单操作。

HKEY_CLASSES_ROOT\*\shell\MyAction\command我创建了一个带有字符串值的键

C:\python37\python.exe "c:\test\test.py" "%1"
Run Code Online (Sandbox Code Playgroud)

该脚本目前仅显示命令行参数(用于调试目的):import sys; print(sys.argv); input()

当我在资源管理器中选择两个文件 a.txtb.txt右键单击“MyAction”时,然后:

如何使上下文菜单操作仅在选择 2 个文件时调用该命令一次,并将这 2 个文件作为命令行参数?


TL;DR我希望启动此功能:

C:\python37\python.exe "c:\test\test.py" "a.txt" "b.raw" "file_with_noext"
Run Code Online (Sandbox Code Playgroud)

并不是:

C:\python37\python.exe "c:\test\test.py" "a.txt"
C:\python37\python.exe "c:\test\test.py" "b.raw"
C:\python37\python.exe "c:\test\test.py" "file_with_noext"
Run Code Online (Sandbox Code Playgroud)

对多个文件使用上下文菜单操作时。


注意:打开多个文件?它的答案并不能解决问题;我尝试过HKEY_CLASSES_ROOT\SystemFileAssociations\*\shell\MyAction\command,但当我选择多个文件(例如 、 、 和 )时,此菜a.txt单项b.raw不会file_with_noext出现testdir\

小智 3

如果您已经得到答案,我深表歉意,但我认为唯一的方法是将您的应用程序的快捷方式放置在 SendTo 文件夹中(您可以通过键入 shell:sendto 从“运行”窗口打开它),然后突出显示这两个文件并选择从“发送到”上下文菜单中选择您的程序。