将单个文件名传递给上下文菜单的shell命令很简单:
[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"
但是如果我选择多个文件,program.exe
将为每个选定的文件启动一次。
相反,我想只调用program.exe
一次,并将当前选择的所有文件名传递给它。
如何做到这一点?
将单个文件名传递给上下文菜单的shell命令很简单:
[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"
但是如果我选择多个文件,program.exe
将为每个选定的文件启动一次。
相反,我想只调用program.exe
一次,并将当前选择的所有文件名传递给它。
如何做到这一点?
您可以使用发送到来实现此功能。它支持多文件。
如果此网站关闭:
使用Windows+R
打开shell:sendto
或将其粘贴到资源管理器地址栏中。它应该将您重定向到:
C:\Users\<yourusername>\AppData\Roaming\Microsoft\Windows\SendTo
在此文件夹中为您的程序创建一个快捷方式,您应该会在资源管理器右键单击菜单中看到它,在“发送到”下方。
C:\test\001.txt
的504个文件。504个文件名总计7560个字符(没有空格),8063个字符(使用空格分隔)。发送505个文件(7575个字符[没有空格];8079个字符[使用空格分隔])将无法工作。 - akinuriG:\New [folder] (4)\Untitled-2.txt
传递给Powershell脚本时,结果变为G:\New [folder] 4 \Untitled-2.txt
。看起来括号无法被正确解析。有什么解决方法吗? - preachersG:\New [folder] \
(4`)\Untitled-2.txt` - gargoylebident我想做同样的事情,最终创建了一个“包装器” .cmd/bat 文件来为我排队命令... 我使用一个临时队列文件来:(a) 自我提名控制实例来运行进程,和 (b) 向其他实例发出信号,不要直接运行命令,而是将它们的文件/参数添加到队列中并退出。脚本等待 X 秒钟让其他实例排队他们的信息,然后按顺序处理选定的文件。
Command-Queuer.cmd
------------------
@ECHO OFF
SETLOCAL
:: SETUP PARAMETERS: Control temp file location and delay before running
SET QueueFile="%TEMP%\Multi-Item-Queue.txt"
SET /A Secs=5
:: MAIN PROGRAM: If the first instance create the queue and wait, otherwise transfer to queue and exit
IF EXIST %QueueFile% ( ECHO %* >> %QueueFile% ) ELSE (
ECHO %* > %QueueFile%
ECHO Waiting %Secs% seconds for other files to finish queuing then will activate...
TIMEOUT /T %Secs% /NOBREAK >nul
REM - ADD YOUR CODE HERE TO PROCESS THE QUEUE FILE AS A WHOLE
REM - Example: Display popup of all file paths selected: Msg %username% <%QueueFile%
REM - ALTERNATIVELY, ITERATE THROUGH EACH LINE OF THE FILE
REM - Example: FOR /F "tokens=*" %%Z in (%QueueFile%) DO ( COPY %%Z "C:\Backup" )
:: Delete the queue file when finished
DEL %QueueFile%
)
GOTO:EOF
注意:每选择一个文件,您将看到一个空的cmd窗口出现一瞬间,即如果您选择30个文件,则会短暂地出现30个cmd窗口,但如果需要,这些窗口可以隐藏,请查看:以完全隐藏的方式运行批处理文件(superuser.com)
HKEY_CLASSES_ROOT\*\shell
)。当我右键单击文件时,该项目会显示出来。但是当我选择多个文件然后右键单击时,它就不会显示出来了。我该如何解决这个问题? - akinuri