右键上下文菜单多选自定义文件类型时仅传单个文件的问题求助
自定义文件类型右键多选一次性传参解决方案
核心修改要点
要实现多选文件时一次性调用脚本并传入所有路径,需同时修改注册表的多选行为配置和命令行参数格式:
1. 配置注册表多选支持
在你的右键菜单项注册表路径下添加多选模式配置:
- 定位到
HKCU\SOFTWARE\Classes\ftype\shell\do something with ftype("do something with ftype"是你创建的右键菜单名称) - 右键新建「字符串值」,命名为
MultiSelectModel,设置数值数据为Player
2. 修改命令行参数格式
修改该子项下方command的默认值,注意引号的正确使用:
- 针对批处理脚本:
"path\ftype.bat" %* - 针对Python脚本:
"<python_exe_path>" "<ftype_handler.py>" %*
注意:
%*不要加引号,Windows会自动为带空格的文件路径添加引号,手动添加会导致参数解析错误;而包含空格的脚本/解释器路径必须用引号包裹。
3. 脚本适配
- 批处理脚本:直接用
%*即可获取所有文件参数,例如:@echo off echo 处理的文件列表: for %%f in (%*) do ( echo %%f :: 这里写你的处理逻辑 ) - Python脚本:通过
sys.argv[1:]获取所有选中文件(sys.argv[0]是脚本自身路径),示例:import sys if __name__ == "__main__": selected_files = sys.argv[1:] for file_path in selected_files: print(f"正在处理:{file_path}") # 编写你的文件处理逻辑
验证
选中多个.ftype文件,右键点击自定义菜单,脚本会被调用一次,所有选中文件的路径都会作为参数传入。
内容的提问来源于stack exchange,提问作者Vishwajith.K
相关产品推荐
相关产品推荐

